您好我正在尝试在php中实现线程。到目前为止,我已经阅读了什么,我知道pthreads库可以用于此目的。
我已经阅读了下面的php安装指南:
http://docs.php.net/manual/en/pthreads.installation.php
下载pthreads windows安装zip后,我解压缩了它&将以下文件放在相应的位置:
移动
php_pthreads.dll to the 'bin\php\ext\' directory.
Move pthreadVC2.dll to the 'bin\php\' directory.
Move pthreadVC2.dll to the 'bin\apache\bin' directory.
Move pthreadVC2.dll to the 'C:\windows\system32' directory.
配置php \ php.ini并添加
extension=php_pthreads.dll
但我在服务器启动时遇到错误,如下所示:
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_pthreads.dll' - The specified module could not be found.
in Unknown on line 0
我无法检测到上面的问题是什么文件php_pthreads.dll是@given位置,可能会出错。
xampp的PHP版本:5.6.15,Pthreads lib版本:3.1.0这两个软件都是针对x86架构的。
我按照Saitama的建议进行了更改,将pthreads的版本从3.1.0更改为2.0.0我收到了如下新警告:
PHP Warning: PHP Startup: pthreads: Unable to initialize module
Module compiled with module API=20100525
PHP compiled with module API=20131226
These options need to match
in Unknown on line 0
如何匹配这些编译API版本我有php扩展内部版本号为20131226,但如何在下载pthread二进制安装zip时决定这个数字?
答案 0 :(得分:2)
只有在使用CLI SAPI时才能加载pthreads
模块。
它仅在CLI SAPI
下提供。
此外,pthreads v3
仅适用于PHP7,因为您使用PHP 5.6
,因此需要使用pthreads v2
。
它只能在cli sapi下使用,因为在apache下生成多个线程可能会被证明是错误的。
所以,问题是:
*您正尝试在CLI
以外的其他SAPI下加载pthread。
*您需要使用pthreadsv2
而不是pthreadsv3
。
注意:如果您使用的是pthreadsv2
,则最有可能在apache SAPI下加载pthread。但仍然不推荐。强烈建议使用其他方法。