3.添加扩展php.ini添加 : extension=pthreads.so;
如果你是之前安装过php,那么,/usr/local/php-zts/bin/php -i|grep php.ini 这个语句帮你找到php.ini位置。
找出php.ini的位置,修改它把ext=pthreads.so加入进入进去,因为我原来就有php,现在新装的php.ini文件不存在我就考了一个过去……
4.查看扩展是否安装成功/usr/local/php5.5.12-zts/bin/php -i | grep -i pthreads
测试代码:
sym = 10245;
$this->arr = array(
1,2,3
);
echo'6'.chr(10);
/*
* objects do work, no preparation needed ...
* read/write objects isn't finalized ..
* so do the dance to make it work ...
*/
$obj=newtestobject();
$obj->val = testval;
$this->obj = $obj;
echo'7'.chr(10);
/*
* will always work
*/
$this->objs = serialize($this->obj);
echo'8'.chr(10);
/*
* nooooooo
*/
$this->res = fopen(php://stdout,w);
echo'9'.chr(10);
/*
* tell the waiting process we have created symbols and fetch will succeed
*/
$this->synchronized(function(){
$this->notify();
});
echo'10'.chr(10);
/* wait for the process to be finished with the stream */
$this->synchronized(function(){
$this->wait();
});
echo'11'.chr(10);
}
}
echo'0'.chr(10);
$thread=newfetching();
echo'1'.chr(10);
$thread->start();
//sleep(1); 加了这个就不能正常工作,真奇怪
echo'2'.chr(10);
$thread->synchronized(function($me){
echo'3'.chr(10);
$me->wait();
echo'4'.chr(10);
},$thread);
echo'5'.chr(10);
/*
* we just got notified that there are symbols waiting
*/
foreach(array(sym,arr,obj,objs,res)as$symbol){
printf(\$thread->%s: ,$symbol);
$fetched=$thread->$symbol;
if($fetched) {
switch($symbol){
/*
* manual unserialize
*/
caseobjs:
var_dump(unserialize($fetched));
break;
default: var_dump($fetched);
}
}
printf(\n);
}
/* notify the thread so it can destroy resource */
$thread->synchronized(function($me){
$me->notify();
},$thread);
?>
在命令框输入:/usr/local/php-zts/bin/php fetch.php
直接在网页没有输出,需要调用php脚本运行。
参照文章:
http://www.2cto.com/kf/201309/245093.html
http://blog.csdn.net/crz03128/article/details/25954441
编译了很久,做个记录。
