对于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 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。
微信
php的进程是有限的,但是线程可以一次几百个并发执行。多线程比较适合一些,对资源耗费少,但是需要长时间等待的工作, 譬如获取运单号,每一个api可能都要等2秒,如果我有3万个单,单个获取肯定拖死,因此用php的多线程是蛮不错的。
最后,推荐一下我的开源商城:Fecshop。
Github地址:https://github.com/fancyecommerce/yii2_fecshop
Fecshop 全称为Fancy ECommerce Shop,是基于php Yii2框架之上开发的一款优秀的开源电商系统,遵循OSL3.0协议, Fecshop支持多语言,多货币,架构上支持pc,手机web,手机app,和erp对接等入口,您可以免费快速的定制和部署属于您的电商系统。
FecShop English Demo:http://fecshop.appfront.fancyecommerce.com/
FecShop 中文演示地址:http://fecshop.appfront.fancyecommerce.com/cn
FecShop QQ群:186604851 ,入群验证:fecshop