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
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
测试代码:
/*
*
Sharing symbols 101
*
@NOTE Thread::fetch was never included in a release and was superceeded by object handlers
*
pthreads allows read access to thread data from any context
pthreads
allows write access to thread data from any context
carry
on reading ...
work
in progress ...
*/
classTestObject
{
public$val;
}
classFetching
extendsThread
{
publicfunction
run(){
/*
*
of course ...
*/
$this->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
*/
case"objs":
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
编译了很久,做个记录。










