匿名函数在 PHP 5.3 中被引入,可以将一个函数赋值给一个变量。先来个例子:
<?php $func = function(){ echo "Hello"; }; $func();
今天看Laravel框架。看见一个很奇怪的写法。就是$this->{ 。当时很奇怪。后来发现可以让方法名是变量,同样对对象的属性也可行。这个太酷了。 继续阅读
Cond在Locker的基础上增加的一个消息通知的功能。但是它只能按照顺序去使一个goroutine解除阻塞。
Cond有三个方法:Wait,Signal,Broadcast。
Wait添加一个计数,也就是添加一个阻塞的goroutine。
Signal解除一个goroutine的阻塞,计数减一。
Broadcast接触所有wait goroutine的阻塞。 继续阅读
golang的多线程固然好用,但是有时候需要对数据进行上锁,防止数据被其它线程更改。那么sync包下的Mutex非常好用。
Mutex是一个互斥锁。可以作为struct的一部分,这样这个struct就会防止被多线程更改数据。
继续阅读
刚才看golang的sync的包,看见一个很有用的功能。就是WaitGroup。
先说说WaitGroup的用途:它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。 继续阅读
golang sync包下的Once是多线程开始之前先执行,并且仅执行一次的方法。可以考虑用来做一些初始化操作。 继续阅读
注意:在操作之前,要先备份好数据库。
默认情况下,MySql的数据库文件位于/var/lib/mysql下。于是想着把现在的数据库文件移动到挂载的硬盘上。找了一些办法,例如一起移动socket,datadir等等。但是移动完成后不能启动。最终找到了一个很完美的方案。 继续阅读