我正在尝试为PHP安装最新的pthreads扩展3.1.6 64位。
根据作者对pthreads的建议,在http://github.com/krakjoe/pthreads
上我已将两个dll放置到所需的位置。
将pthreadVC2.dll(包含在Windows版本中)添加到与php.exe相同的目录中,例如。 C:\ Apache24 \ PHP 将php_pthreads.dll添加到PHP扩展文件夹,例如。 C:\阿帕奇\ PHP \分机
还在Windows \ system32目录中
并在[Apache Http.confd] [1]
中添加了LoadFile我已经添加了扩展到我的php.ini
但Apache不会启动,当我检查apache error.log时,我有以下
[Tue Jun 28 11:38:31.184618 2016] [ssl:warn] [pid 8640:tid 352] AH01909:localhost:443:0服务器证书不包含ID 它与服务器名称匹配
[Tue Jun 28 11:38:31.215819 2016] [core:warn] [pid 8640:tid 352] AH00098:pid文件 C:/Apache24/logs/httpd.pid被覆盖 - 以前的不干净关闭 Apache运行?
我已经将php_pthreads.dll扩展名移到了扩展名列表的顶部并且到了底部,但没有任何乐趣。它不会从这个pthreads dll开始。但是如果我回复一下; extension = php_pthreads.dll,我的Apache会重新启动,但不会使用这个pthreads dll。
这是一个错误还是我做错了什么?
我的系统设置信息很少 Window 7 64位,使用Apache 2.4.x VC14
PHP信息
系统Windows NT NG10676 6.1 build 7601
(Windows 7企业版Service Pack 1)AMD64
建造日期2016年6月21日15:08:19
编译器MSVC14(Visual C ++ 2015)
架构x64
启用线程安全
请注意我的系统10,11,14上都安装了所有64位的VC编译器,并且安装了32位以防万一。
请注意,我已尝试过有关pthreads安装的所有先前线程,但它们对我的安装没有帮助。 我已经尝试了每个谷歌页面,但他们只是不工作,任何帮助将不胜感激。如果PHP pthreads设计师可以对这个版本有所了解。
答案 0 :(得分:2)
pthreads v3仅限于在CLI中运行:我花了很多年时间试图解释网络服务器中的线程没有意义,在1,111次提交到pthreads之后我意识到这一点,我的建议是理睬。
因此,我提出了一个关于硬性和快速事实的建议:除了CLI之外,您无法安全,明智地使用pthread。
感谢收听;)
Quote from blog explaining change from v2
...
EJB明确禁止程序员按规范创建线程,现代Java甚至没有1:1模型。显然,这主要是因为环境可能被迁移(在服务器集群内移动),在其管理池之外移动线程很难想象。它比禁止创建线程更进一步,它禁止使用同步原语,因为如果在保留锁定的情况下移动节点会发生什么 - 所有地狱都会松动。
在Java中,一般不鼓励你在Servlet中手动创建线程,原因与我对pthreads不鼓励的原因相同。
虽然并非每个环境都会实际禁止它,但它确实可以运行得很深;每个人都同意在Web响应上下文中创建真实(1:1)线程是一个坏主意。
...