浅谈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中的日期处理方法集锦
Jan 02 PHP
php去除字符串换行符示例分享
Feb 13 PHP
php自定义函数截取汉字长度
May 15 PHP
php采用file_get_contents代替使用curl实例
Nov 07 PHP
php实现发送微信模板消息的方法
Mar 07 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
Jul 01 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
thinkPHP框架实现生成条形码的方法示例
Jun 06 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
laravel5.1框架model类查询的实现方法
Oct 08 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验证码
2015/05/04 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/03 Javascript
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
详解Python中的元组与逻辑运算符
2015/10/13 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
爱我中华教学反思
2014/04/28 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
导游词之昭君岛
2020/01/17 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
gateway网关接口请求的校验方式
2021/07/15 Java/Android
nginx之内存池的实现
2022/06/28 Servers