php线程安全与非线程安全版的区别

Thread Safe(线程安全)和 None Thread Safe(非线程安全)

背景:
Linux/Unix系统采用多进程的工作方式,而Windows系统采用多线程的工作方式。
CGI模式是建立在多进程的基础上的,ISAPI模式是多线程的方式。(php运行的方式)
很多常用的php拓展是以Linux/Unix的多进程思想来开发的,在ISPAI的方式运行会出错搞垮IIS.因此IIS下CGI模式才是php运行的最安全的方式。但CGI模式对于每个HTTP请求都需要重新加载和卸载正个php环境,其消耗是巨大的。

解决方案:
为了兼顾IIS下php的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让php的进程重复利用而不是每一个新的请求就重开一个进程,同时允许几个进程同时执行。因此ISAPI的方式运行php就必须用Thread Safe的版本,用FastCGI模式运行php就没有必要用线程安全检查,用None Thread Safe的版本就能够更好的提高效率。(winodw平台下其他web服务器类似) 

原理:
ISPAI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率。
FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查 ,除去线程安全检查的防护反而可以提高执行效率。

注:
一般多进程意味着更安全,多线程意味更着方便。

 

转载于:https://www.cnblogs.com/csfei/p/6590347.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值