,即线程安全,一般在IIS以ISAPI加载时选择此版本。,一般以fast cgi运行时选择这个版本,性能更好。
第一个从2000年10月20日发布的Windows版的PHP3.0.从线程安全版开始,这是由于与Linux/Unix该系统采用多流程工作方式不同Windows系统采用多线程工作模式。如果在IIS下以CGI方式运行PHP会很慢,这是因为CGI该模是基于多过程,而不是多线程。如果在IIS下以CGI方式运行PHP会很慢,这是因为CGI模式是建立在多进程的基础之上的,而非多线程。一般我们会把PHP配置成以ISAPI运行方式,ISAPI这是一种多线程的方式,所以要快得多。但是有一个问题,很多常用PHP扩展是以Linux/Unix这些扩展是由多过程思想开发的ISAPI的方式运行时就会出错搞垮IIS。因此在IIS下CGI模式才是 PHP最安全的运行方式,但是CGI每个模式HTTP所有要求都需要重新加载和卸载PHP消耗巨大的环境。
为了兼顾IIS下PHP微软给出了效率和安全性FastCGI解决方案。FastCGI可以让PHP重复使用过程而不是每个新请求。同时FastCGI几个过程也可以同时执行。这样既解决了CGI过程模式消耗过多的问题再次被利用CGI线程安全没有优势。
如果是使用ISAPI运行的方式PHP就必须用Thread Safe(线程安全)版本;使用FastCGI模式运行PHP没有必要使用线程安全检查,使用None Thread Safe(NTS,非线程安全)版本可以更好地提高效率。
ts(Thread-Safety)也就是说,当线程安全和多线程访问时,采用锁定机制。当一个线程访问此类数据时,保护其他线程不能访问,直到线程读取。数据不一致或数据污染php以ISAPI加载时选择这个版本.,php以ISAPI加载时选择这个版本. ,如果不提供数据访问保护,可能会有多个线程先后更改数据。 脏数据php以fast cgi运行时选择这个版本,性能更好; ISAPI(Internet Server Application Programming Interface), 通常是指被http以服务器模块的形式加载的服务器 软提出,所以只能在win例如,在平台上运行win下的apache,iis[据说用fast cgi 工作方式更稳定],而linux上php 则以 Apache模块或者php-fpm运行方式。 cgi(Common Gateway Interface):HTTP说白了,服务器是一种与您或其他机器上的程序交谈的工具,cig就是一种 后台语言可以与服务器通信。php它作为一个独立的程序运行。其特点是内存消耗。 fast cgi.是一个常驻(long-live)型的CGI,它可以一直执行,只要激活,就不会每次都花时间fork.这种方式 与语言无关的可伸缩架构CGI开放扩张的主要行为是CGI解释器过程保持在内存中,从而获得更多 高的性能。 ISAPI以执行为准DLL动态库的形式可以在用户要求后执行,在处理用户要求后不会立即消失,因此需要进行线程安全检查,以提高程序的执行效率,因此如果是ISAPI来执行PHP,建议选择ThreadSafe版本。 而FastCGI执行方法是单线程执行,因此无需进行线程安全检查。除了线程安全检查的保护外,还可以提高执行效率。因此,如果是FastCGI来执行PHP,建议选择NonThread Safe版本。 通过phpinfo(); 查看其中的 Thread Safety 如果是:enabled,一般应该是ts版,否则是nts版。
参考资料:51物联网