为了账号安全,请及时绑定邮箱和手机立即绑定

PHP线程安全和非线程安全有什么区别?

/ 猿问

PHP线程安全和非线程安全有什么区别?

蓝山帝景 2018-10-17 14:10:46

PHP线程安全和非线程安全有什么区别


查看完整描述

1 回答

?
慕容708150

 1、windows + IIS +  FastCGI :使用非线程安全版本。
解释:
以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,不存在多个线程之间可能引发的相互干扰(这种干扰通常都是由于全局变量和静态变量导致的)。由于省去了线程安全的检查,因此使用FastCGI方式比ISAPI方式的效率更高一些。
2、windows + IIS +  ISAPI :使用线程安全版本。
解释:
PHP以ISAPI方式安装时,PHP没有独立的进程,而是作为DLL被IIS加载运行的,即是依附于Web服务器进程的。当Web服务器运行在多线程模式下(IIS正是这种情况),PHP自然也就运行在多线程模式下。只要是在多线程模式下运行,就可能存在线程安全问题,因此应选择PHP的线程安全版本。
3、windows + Apache +  PHP(模块) :使用线程安全版本。
解释:
如果要在Apache中以模块方式安装PHP,则应该使用PHP的线程安全的版本。原因是当PHP作为Apache的模块安装时,PHP没有独立的进程,而是作为模块以DLL的形式被加载到Apache中的,是随Apache的启动而启动的,而Windows下的Apache为多线程工作模式,因此PHP自然也就运行在多线程模式下。因此,这种情况下应使用PHP的线程安全版本。

查看完整回答
反对 回复 2018-11-09

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信