php 真正的多线程 pthread

技巧库 · fecommerce · 于 8个月前 发布 · 1984 次阅读

对于php,有很多种多进程的实现,这里就不说了,下面介绍一种多线程的方式。 php真正的多线程实现方式,通过安装php的扩展:pthread 扩展

原文链接:php 真正的多线程 pthread

安装步骤如下:

1.下载地址是这个:

https://github.com/krakjoe/pthreads

但是这个下载的是 版本3 也就是php 7 才能用的

我们需要使用2版本

然后刷新的页面如下,拖到最底部:

在下一页找到版本2的

注意:v3版本是php7使用的,v2版本才是php5使用的版本,这个一定要注意,如果你的php是5版本,安装phread 3版本将会报错。

下载下来,这个v2 才是php5才可以使用的

下载下来,安装:

或者,您直接这样下载:


    cd /tools  
    wget https://github.com/krakjoe/pthreads/archive/v2.0.10.zip  
    unzip   v2.0.10.zip  
    cd pthreads-2.0.10  
    /usr/local/php/bin/phpize  
    ./configure --with-php-config=/usr/local/php/bin/php-config    
    make  
    make install  

注意:您的php 在编译的时候需要开启 --enable-maintainer-zts,


./configure --prefix=/usr/local/php --disable-fileinfo   --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc  --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --with-mcrypt=/usr/local/libmcrypt --enable-zip --with-mysql=/usr/local/mysql --without-pear --enable-maintainer-zts 



vim /etc/php.ini 
添加
extension=pthreads.so  

重启php  
/etc/init.d/php-fpm restart  

我之前搞的一个用php多线程获取订单货运号的例子:

http://blog.csdn.net/terry_water/article/details/50273847

本文由 fecommerce 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。


微信

本帖已被设为精华帖!
共收到 8 条回复 php真正多线程
fecommerce#18个月前 3 个赞

php的进程是有限的,但是线程可以一次几百个并发执行。多线程比较适合一些,对资源耗费少,但是需要长时间等待的工作, 譬如获取运单号,每一个api可能都要等2秒,如果我有3万个单,单个获取肯定拖死,因此用php的多线程是蛮不错的。

iVanilla#28个月前 0 个赞

如果没有特殊情况的话,我建议用PHP7,因为比PHP5快近一倍,性能提升很多。

fecommerce#38个月前 0 个赞

@iVanilla #2楼 两码事,不是执行速度快不快的问题,而是并发的问题。

wlmaaa#48个月前 0 个赞

哈哈哈哈哈哈哈哈哈哈,内容不错

fecommerce#58个月前 1 个赞

@wlmaaa #4楼 还是蛮实用的。

stark#66个月前 0 个赞

他这是官方的扩展吗?

fecommerce#76个月前 0 个赞

@stark #6楼 我也不了解,但是的确是可以用的。我在线上项目中已经用过,可以的

ppker#86个月前 0 个赞

可以的 666 赞一个

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册