浅谈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 相关文章推荐
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
php checkbox 取值详细说明
Aug 19 PHP
php实现rc4加密算法代码
Apr 25 PHP
php 定义404页面的实现代码
Nov 19 PHP
LotusPhp笔记之:Cookie组件的使用详解
May 06 PHP
PHP中SimpleXML函数用法分析
Nov 26 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
PHP微信开发之模板消息回复
Jun 24 PHP
使用WAMP搭建PHP本地开发环境
May 10 PHP
PHP array_shift()用法实例分析
Jan 07 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
Mar 08 PHP
php文件上传原理与实现方法详解
Dec 20 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
ThinkPHP中redirect用法分析
2014/12/05 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
12种不宜使用的Javascript语法整理
2013/11/04 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
详解在React里使用"Vuex"
2018/04/02 Javascript
解决VUE双向绑定失效的问题
2019/10/29 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
python通过索引遍历列表的方法
2015/05/04 Python
Python实现的HTTP并发测试完整示例
2020/04/23 Python
Python正则表达式完全指南
2017/05/25 Python
python添加模块搜索路径方法
2017/09/11 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
python多行字符串拼接使用小括号的方法
2020/03/19 Python
python dlib人脸识别代码实例
2019/04/04 Python
Python post请求实现代码实例
2020/02/28 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
客服实习的个人自我鉴定
2013/10/20 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js
深入讲解数据库中Decimal类型的使用以及实现方法
2022/02/15 MySQL
MySQL创建管理KEY分区
2022/04/13 MySQL
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS