`

PHP5中Thread Safe(线程安全)None Thread Safe(NTS,非线程安全)的区别

    博客分类:
  • PHP
阅读更多

indows版的PHP 从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。

从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程 的工作方式不同的是Windows系统是采用多线程的工作方式。如果在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,非线程安全)的版本能够更好的提高效率。

 

分享到:
评论

相关推荐

    PHP 线程安全与非线程安全版本的区别深入解析

    从PHP 5.2.1版本开始,Windows上的PHP分为Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)两个版本,这两种版本的设计考虑了不同的运行环境和性能需求。 线程安全(Thread Safe,TS)版本的PHP主要...

    Windows下的PHP安装文件线程安全和非线程安全的区别

    在Windows环境下安装PHP时,用户会发现存在线程安全(Thread Safe)和非线程安全(None Thread Safe,NTS)两种不同版本的PHP安装文件。这一区别尤其重要,因为它们适用于不同的Web服务器环境,直接影响到PHP运行的...

    php-5.4.37-Win32-VC9-x86

    从5.2.1版本开始,就有ts和nts的区别,Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全) Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于...

    浅谈php的TS和NTS的区别

    在PHP的世界里,TS(Thread-Safety)和NTS(None-Thread Safe)是两种不同的编译模式,它们主要关乎到多线程环境下的数据安全和性能优化。这篇文章将深入探讨这两种模式的区别以及如何根据你的服务器环境来选择合适...

    PHP中VC6、VC9、TS、NTS版本的区别与用法详解

    接下来,我们讨论TS(Thread Safe)和NTS(NoneThread Safe)的区别。TS和NTS主要涉及到线程安全问题。在Windows平台上,从PHP 5.2.1开始,PHP提供了这两种不同的线程安全选项。Thread Safe版本的PHP在执行时会进行...

    PHP版本选择

    本文将深入探讨PHP版本选择的关键因素,包括VC6与VC9的区别、线程安全(Thread Safety,简称TS)与非线程安全(None-Thread Safe,简称NTS)、以及不同服务器环境下的适配。 首先,PHP版本主要分为PHP4、PHP5和PHP6...

    php-5.5.0-Win32-VC11-x64.zip

    IIS下,使用ISAPI方式运行PHP,就使用Thread Safe(线程安全)的版本,使用FastCGI方式运行PHP,就使用None Thread Safe(NTS,非线程安全)的版本。 注:php5.2没有vc9,php5.3、php5.4没有vc6。呵呵。PHP5.5开始,不...

    Zend Guard Loader For PHP 5.5 or 5.6

    不过php的版本更新迭代也很快的,低版本的Zend Guard Loader可能无法支持,这里给出支持php5.5和php5.6两个版本的Zend Guard Loader,提醒一下,最好是用PHP的None Thread Safe(NTS,非线程安全)版本,不然可能无法...

    php指南白菜版

    - **线程安全性**:解释了Thread Safety(TS)和None-Thread Safety(NTS)的区别及其应用场景。TS版本适用于IIS以ISAPI方式加载的情况,而NTS版本则适合FastCGI方式运行。 #### 3. PHP学习路径与资源 - **学习...

    PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析

    在IIS环境下,通常建议使用Thread Safe(TS)版本的PHP,而在Apache环境下,则倾向于使用None Thread Safe(NTS)版本。这是因为Windows系统采用的是多线程工作方式,而Linux/Unix系统采用的是多进程工作方式。在IIS...

Global site tag (gtag.js) - Google Analytics