php5线程安全,php线程安全和非线程安全的区别

Windows服务器上的PHP有线程安全(ThreadSafe, TS)和非线程安全(NoneThreadSafe, NTS)两种版本。线程安全适用于与IIS和ISAPI配合,非线程安全则常用于Apache和FastCGI。Linux服务器无此区分。选择原则:IIS+PHP选NTS,Apache+PHP选TS,ISAPI需TS,FastCGI推荐NTS。
摘要由CSDN通过智能技术生成

windows下的php有两个版本,线程安全(Thread Safe)和非线程安全(Non Thread Safe)。由于Linux/Unix系统采用的是多进程的工作方式,所以linux服务器下的PHP,没有PHP线程安全和非线程安全版的区分。

TS是指具有多线程能力的构建。NTS是指单线程构建。

TS二进制文件的用例涉及与作为模块加载到Web服务器的多线程SAPI和PHP进行交互。

对于NTS二进制文件,广泛的用例是通过FastCGI协议与Web服务器进行交互,不使用多线程(也可以是CLI)。

目前php的几种运行方式:

CGI(Common Gateway Interface,通用网关接口)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一个CGI程序只能处理一个用户请求。这样,当用 户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。

FastCGI 可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载,也是 CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性等

ISAPI(Internet Server Application Program Interface,网络服务端应用编程端口)

微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接 口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。

以 ISAPI 模式运行 PHP 的,这种方式最大的缺点就是稳定性不好,当 PHP 出错的时候,Apache进程也死掉。

线程安全和非线程安全如何选择

windos服务器:

1、如果你是PHP+IIS;请选择:PHP非线程安全(None Thread Safe(NTS));

2、如果你是PHP+apache;请选择:PHP线程安全(Thread Safe(TS));

3、如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;

4、用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。

linux服务器:

linux服务器下的PHP,没有PHP线程安全和非线程安全版的区分;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值