浅谈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 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
php REMOTE_ADDR之获取访客IP的代码
Apr 22 PHP
php 结果集的分页实现代码
Mar 10 PHP
php explode函数实例代码
Feb 27 PHP
PHP的几个常用数字判断函数代码
Apr 24 PHP
PHP版网站缓存加快打开速度的方法分享
Jun 03 PHP
php笔记之:php函数range() round()和list()的使用说明
Apr 26 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
分享一则PHP定义函数代码
Feb 26 PHP
PHP利用二叉堆实现TopK-算法的方法详解
Apr 24 PHP
PHP实现类似题库抽题效果
Aug 16 PHP
使用laravel的migrate创建数据表的方法
Sep 30 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
与数据库连接
2006/10/09 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
python利用7z批量解压rar的实现
2019/08/07 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
高中校园广播稿
2014/10/21 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
2016春季运动会前导词
2015/11/25 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers