浅谈php的TS和NTS的区别


Posted in PHP onMarch 13, 2019

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的TS和NTS的区别,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP 数组实例说明
Aug 18 PHP
Cannot modify header information错误解决方法
Oct 08 PHP
php 静态化实现代码
Mar 20 PHP
php 数组的一个悲剧?
May 11 PHP
php fsockopen伪造post与get方法的详解
Jun 14 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
php强大的时间转换函数strtotime
Feb 18 PHP
php上传大文件设置方法
Apr 14 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 PHP
php使用自带dom扩展进行元素匹配的原理解析
May 29 PHP
PHP http请求超时问题解决方案
Nov 13 PHP
浅谈PHP各环境下的伪静态配置
Mar 13 #PHP
Laravel框架实现的使用smtp发送邮件功能示例
Mar 12 #PHP
Laravel事件监听器用法实例分析
Mar 12 #PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
Mar 12 #PHP
PHP DB 数据库连接类定义与用法示例
Mar 11 #PHP
PHP实现的杨辉三角求解算法分析
Mar 11 #PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
Mar 11 #PHP
You might like
php页面缓存ob系列函数介绍
2012/10/18 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
ie8 不支持new Date(2012-11-10)问题的解决方法
2013/07/31 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
python3.x 将byte转成字符串的方法
2018/07/17 Python
python学生信息管理系统(初级版)
2018/10/17 Python
Django数据库操作之save与update的使用
2020/04/01 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
学习委员自我鉴定
2014/01/13 职场文书
文明餐桌活动方案
2014/02/11 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
公司业务员岗位职责
2014/03/18 职场文书
趣味运动会策划方案
2014/06/02 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
皇城相府导游词
2015/02/06 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
干部考核工作总结
2015/08/12 职场文书
初中数学教学随笔
2015/08/15 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers