我已经用C++和Java进行了多线程编码。我想使用PHP CLI,但还没有找到一种简单的方法来设置服务器以允许多线程。如果可能的话,我希望能够使用工作线程,但需要设置我们的服务器。它是Redhat 6.5。
提前谢谢。
先决条件
要使用pthreads
,PHP必须在启用线程安全的情况下构建。
请注意,PHP确实有一个线程模型,它是在考虑线程体系结构的情况下构建的。
然而,它通常不是PHP的默认构建模式,包维护人员倾向于迎合大众,大众不关心线程安全。
配置
如果您当前安装了PHP,并将其与apache prefork mpm或其他非线程安全设置一起使用,那么请保持该安装不变。最好的做法是构建一个独立的PHP安装,以便在控制台上使用。
以下示例会话说明了如何在/opt 中隔离安装
git clone https://github.com/php/php-src
cd php-src
git checkout PHP-5.6
./buildconf
./configure --prefix=/opt --with-config-file-path=/opt --with-config-file-scan-dir=/opt/etc.d --enable-maintainer-zts
make
sudo make install
安装pthreads
有了PHP的线程安全构建,安装pthreads就很容易了。下面的示例会话说明了如何安装最新的pthreads源
git clone https://github.com/krakjoe/pthreads
cd pthreads
phpize
./configure
make
sudo make install
运行与pthreads一起分发的测试套件是确保一切正常的好方法:
make test
要始终加载pthreads:
echo extension=pthreads.so > /opt/etc.d/pthreads.ini