PHP安装包TS和NTS的区别

关于PHP的ts和nts 的简介:

 

ts(Thread-Safety)即线程安全:

多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他

线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。phpISAPI方加载的时候选择这个版本.

     

 nts(None-Thread Safe)即非线程安全:

就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的是脏数据。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解释器进程保持在内存中并因此获得较高的性能。

cgi和fast cgi的区别找度娘。

2.选择

 通常win下php和apache组合,以isapi的方式运行,而linux下可以是apche+php,php常常作为apache的模块,而nginx+php时,phpfast cgi的方式,即php-fpm的方式跑。

   据说php-fpm这种方式释放了web服务器,使其仅仅处理请求和并发,而php处理则交php-fpm完成,故 nginx+php现在很受青睐,没测过!

 

 

TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。

NTS即None-Thread Safe,一般以fast cgi方式运行的时候选择这个版本,具有更好的性能。

具体:

从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,非线程安全)的版本能够更好的提高效率。

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PHP 8.1.14nts是指非线程安全版本的PHP 8.1.14。PHP是一种脚本语言,常用于Web开发,用于创建动态网页和应用程序。PHP主要在服务器端执行,生成动态网页内容,并将其发送给用户的浏览器。 在PHP的版本号中,8.1.14代表着具体的版本和修补程序。这将有助于更新和修复先前版本中存在的错误和漏洞,增加性能以及提供新功能。 NTS(Non-Thread Safe,非线程安全)是一个针对Windows操作系统的描述。在非线程安全版本的PHP中,PHP模块不支持多线程环境。这意味着在Windows系统上,PHP 8.1.14nts不能在多线程服务器或应用程序中使用。但是,它仍然可以在单线程环境中正常运行。 相比之下,线程安全版本(TS)的PHP模块允许同时运行多个线程,适用于多线程服务器和应用程序环境。因此,如果您计划在Windows上使用多线程服务器或应用程序,您应该选择线程安全版本的PHP。 在选择php版本时,您应该考虑操作系统类型、服务器和应用程序的需求,正确选择相应的版本,以确保性能和安全性。确保选择合适的版本将能够提供更好的使用体验和保障网站的稳定性。 ### 回答2: PHP 8.1.14nts是指非线程安全版本的PHP 8.1.14。在PHP中,我们通常有两个版本可供选择:线程安全(TS)和非线程安全(NTS)。 NTS版本是指PHP安装包不包含与线程安全相关的代码。对于多线程环境,NTS版本可能会出现一些问题,因为多个线程可能同时访问和修改同一个共享资源,从而导致意外的结果。 相比之下,TS版本的PHP安装包包含了线程安全相关的代码,以便在多线程环境下正常运行。TS版本在多线程环境下的性能更好,但部署和配置也更复杂。 对于一般的Web开发环境,我们通常建议使用NTS版本的PHP,因为大多数的Web服务器(如Apache、Nginx)都是以单线程方式运行。而对于需要在多线程环境中运行的应用程序,比如一些桌面应用或者服务端程序,我们则建议使用TS版本的PHP。 因此,PHP 8.1.14nts是一种非线程安全版本的PHP 8.1.14,适用于大多数的Web开发环境。要根据实际情况选择合适的版本,以确保PHP的正常运行和最佳性能。 ### 回答3: PHP是一种常用的开源服务器端脚本语言,而“8.1.14nts”是指PHP的版本号。在这个版本中,“8.1.14”代表了PHP的主要版本和次要版本,而“nts”则是指PHP的线程安全版本。NTS代表的是Non-Thread Safe,意味着PHP在运行时不支持多线程操作。 在PHP的非线程安全版本中,每个请求都将在一个独立的进程中运行,而不会共享内存或资源。这个设计可以确保每个请求的独立性,避免不同请求之间的资源冲突和竞争条件。这使得PHP非线程安全版本在处理大量并发请求时更加稳定和可靠。 然而,由于PHP的非线程安全版本不能充分利用多核处理器的优势,在处理大量并发请求时性能可能会受到一定的限制。如果需要使用多线程操作或者希望提高系统的吞吐量和性能,可以考虑使用PHP的线程安全版本。 总结而言,PHP8.1.14nts是指PHP的8.1.14版本的非线程安全版本。非线程安全版本适合处理独立的请求并保证稳定性,但在处理大量并发请求时性能可能会受到限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值