PHP 的 NTS 和 TS 之间的区别?
PHP 的 NTS 和 TS 之间的不同?
PHP的NTS和TS之间的不同:前者可以在多线程拜访时,采纳了加锁机制,从而不会显现数据不一致或者数据污染,而后者是不供给数据拜访庇护,因此会有大概显现数据脏读,不外会具有更好的机能。
ts(Thread-Safety)即线程平安,多线程拜访时,采纳了加锁机制,当一个线程拜访该类的某个数据时,停止庇护,其他线程不克不及停止拜访直到该线程读取完,其他线程才可使用。不会显现数据不一致或者数据污染php以ISAPI方式加载的时候选中这个版本.,php以ISAPI方式加载的时候选中这个版本.
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说明器进程保持在内存中并因此获得较 高的机能。
ISAPI施行方式是以DLL动态库的情势使用,可以在被会员恳求后施行,在处置完一个会员恳求后不会立刻消逝,所以需要停止线程平安检查,这样来提高程序的施行效力,所以假如是以ISAPI来施行PHP,倡议选中ThreadSafe版本。
而FastCGI施行方式是以简单线程来施行操纵,所以不需要停止线程的平安检查,除去线程平安检查的防护反而可以提高施行效力,所以,假如是以FastCGI来施行PHP,倡议选中NonThread Safe版本。
通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看可否是线程平安,假如是:enabled,一样来说应当是ts版,不然是nts版。
引荐教程:《PHP》
以上就是PHP 的 NTS 和 TS 之间的不同?的具体内容,更多请关注百分百源码网其它相关文章!