PHP的pthreads扩展:真正的PHP多线程(绝非fork或者用http再开进程)。

jackxiang 2013-5-23 09:50 | |
背景:很多PHPer想PHP也像Java / c++ 一样能支持多线程,于是就有了,在新的版本里加了这样一个扩展,之所以它能行,因为Linux本身就支持,用C扩展一下就可以了,这样用到底成熟不,还是值得时间和对这种应用的需求程度进行检验。

扩展地址:
http://pecl.php.net/package/pthreads


#如果你的autoconfig版本高于2.59,则只能安装php5.4
#否则你只可以安装5.3.17。如果知道你的autoconf的版本——如果你已经安装了php.5.4那么,你就安装照5.4的安装;如果装了5.3就装5.3

#5.4
wget
tar zxvf php-5.4.7.tar.gz
cd php-5.4.7/ext

#5.3
wget
tar -xf php-5.3.17.tar.gz
cd php-5.3.17/ext


#下面装pthreads
wget https://github.com/krakjoe/pthreads/tarball/master -O pthreads.tar.gz
tar -xf pthreads.tar.gz
mv krakjoe-pthreads* pthreads
cd ../
./buildconf --force
./configure --enable-maintainer-zts --enable-pthreads --prefix=/usr/local/php-threads#其它参数自行配置,这里只是必须的参数
make
make install

源码包里面有例子,像这样执行:

/usr/local/php-threads/bin/php AdvancedSynchronization.php

[plain]
Process: running
ScopeTest: 140703850592000 running
ScopeTest2: 140703839512320 running
ScopeTest2: 140703839512320 working ...
ScopeTest2: 140703839512320 notified: 1
Process: notifying 140703839512320: 1
ScopeTest: 140703850592000 notified: 1
Process: notifying 140703850592000: 1


通过apache执行的还没有试过,因为我不想破坏现有的php环境,而且我也不打算在非cli模式下执行。

以上参考来自:http://www.2cto.com/kf/201209/157350.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/6386/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2013-5-23 09:51
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]