浅谈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也可以?成Shell Script
Oct 09 PHP
php 无法载入mysql扩展
Mar 12 PHP
有关phpmailer的详细介绍及使用方法
Jan 28 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
php实现的css文件背景图片下载器代码
Nov 11 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
Apr 17 PHP
PHP中遇到的时区问题解决方法
Jul 23 PHP
PHP中的Session对象如何使用
Sep 25 PHP
详解WordPress中简码格式标签编写的基本方法
Dec 22 PHP
thinkphp框架实现删除和批量删除
Jun 29 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 PHP
PHP实现验证码校验功能
Nov 16 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中Socket创建与监听实现方法
2015/01/05 PHP
3种php生成唯一id的方法
2015/11/23 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
Python实现合并字典的方法
2015/07/07 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
python画微信表情符的实例代码
2019/10/09 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
公司财务工作总结的自我评价
2013/11/23 职场文书
检察官就职演讲稿
2014/01/13 职场文书
财务工作者先进事迹材料
2014/01/17 职场文书
环保志愿者活动总结
2014/06/27 职场文书
工程承包协议书范本
2014/09/29 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
小学感恩节活动总结
2015/03/24 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers