线程安全和非线程安全的区别?

TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。

NTS即None-Thread Safe,一般以fast cgi方式运行的时候选择这个版本,具有更好的性能。

具体:

从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程的工作方式不同的是Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程。一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个问题,很多常用的PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。因此在IIS下CGI模式才是 PHP运行的最安全方式,但CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。

因此:

如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;

而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。

通过phpinfo();打印环境查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全如果是:enabled,一般来说应该是ts版,否则是nts版。

A: 下载PHP安装文件时,我看到有两种不同的二进制文件,像是非线程安全(Non Thread Safe)和线程安全(Thread Safe),比如该页面所列:http://windows.php.net/download/。这个是什么意思,之间有什么区别?

区别也可以在上面的链接中查看。

Q: 这个主要是针对web server 而言,在windows环境下,如果你使用的web server 是apchae 或者 iis 7以下版本,则应该选择线程安全的安装文件,而如果你使用Fast-cgi模式时,可以选择非线程安全,因为 web sever 本身能保证线程安全。

Q: 如楼上所言,是针对web server的,部分web server在处理应用请求的时候是用多线程而非多进程的方式处理,线程方式因为涉及到共享寄存器和内存,所以很容易出错,这个时候程序就需要花一些额外的经历去处理寄存器中的数据一致性,即保证线程安全。

当然还有二进制文件编译时所使用的编译器:vc9 (vs系列) vc6(gcc)

所以是否采用线程安全主要看你的web server所采用的PHP请求处理方式,如果是多线程处理,那么请选择线程安全的,否则选择非线程安全的,如楼上所说Fast-cgi方式可选择非线程安全的。

php fpm ts nts,如何判断PHP 是ts还是nts版的?相关推荐

  1. Python爬取视频之爱情电影及解密TS文件和两种合并ts的方法

    俗话说,兴趣所在,方能大展拳脚.so结合兴趣的学习才能事半功倍,更加努力专心,apparently本次任务是在视频网站爬取一些好看的小电影,地址不放(狗头保命)只记录过程. 实现功能: 从网站上爬取采 ...

  2. Python爬取视频之爱情电影及解密TS文件和两种合并ts!

    俗话说,兴趣所在,方能大展拳脚.so结合兴趣的学习才能事半功倍,更加努力专心,apparently本次任务是在视频网站爬取一些好看的小电影,地址不放(狗头保命)只记录过程. 实现功能: 从网站上爬取采 ...

  3. vue使用ts 引入组件_vue中使用TS实现父子组件直接的通信

    vue中使用ts 在vue中使用ts是需要有一定的ts基础的,如果对于ts小白的话还是推荐先看一下ts官网,先了解基础以后这样使用起来才会事半功倍. 1.下载依赖项 npm install --sav ...

  4. python画六角图_采用计量六角图判断高压计量接线速学版-资源下载人人文库网...

    采用计量六角图判断高压计量接线 速学版 采用计量六角图判断高压计量 装置的接线是否正确,速学版,V1.0,目录,一.计量六角图所需的培训设备 二.基本知识原理 三.计量六角图相关数据测量 四.被测电表 ...

  5. Web端直接播放 .ts 视频及mux.js播放ts视频没有声音

    最近项目中需要前端播放 .ts 格式视频,捣鼓了几天学习到很多知识,也发掘了一种优秀的解决方案,分享给有同样需求的同学. 常见方案 在网上查找的大部分解决方案都是用诸如videojs等网页播放器,接收 ...

  6. 前端TS学习笔记 (JS和TS优劣对比)

    1.TypeScript优势   (跟JS相比较) 更早(写代码的同时)发现错误,减少找BUG,改BUG时间,提升开发效率. 程序中任何位置的代码都有代码提示,随时随地的安全感,增强了开发体验. 强大 ...

  7. php扩展ts和nts,浅谈php的TS和NTS的区别

    温馨提示:本信息由[金聪采编]搜集整理发布,版权归原作者及发布者所有,您如有异议请 举报 或者 版权申诉. php的垃圾回收机制可以简单总结为 引用计数 写时复制 COW机制, 本文主要和大家分享掌握 ...

  8. webpack 打包ts项目_使用webpack打包ts

    初始化package.json npm init -y cnpm i -D webpack webpack-cli(webpack命令行工具) typescript ts-loader(整合) 2.1 ...

  9. ts 模板库文件_vue与ts的使用模版

    [源码地址](https://github.com/jielanglang/simple-vue) [项目demo](https://xll.netlify.com/) # 这里讲下使用中注意的事项  ...

最新文章

  1. 第十六届全国大学生智能车竞赛RT-Thread创新专项奖获奖名单
  2. nedc和epa续航里程什么意思_为何特斯拉的锂电池行驶里程至今仍无人超越?
  3. fedora16配制
  4. Ubuntu出现卡logo、卡住、黑屏无法正常启动、屏幕和键盘背光无法调节等一系列问题?可能是NVIDIA显卡驱动没装好...
  5. mysql命令导出表结构文件夹_mysql,命令导入\导出表结构或数据
  6. 字节跳动Deep Retrieval召回模型笔记
  7. 信息学奥赛一本通C++语言——1086:角谷猜想
  8. 地表最强mysql命令行连接工具mycli
  9. linux下iptables的编译及简单使用
  10. 从 JVM 角度看 Spring 中方法执行过程和内存状态
  11. python文档:控制流(if,for,函数,lambda等)
  12. 自体脂肪填充面部能保持多长时间,这是能说的吗
  13. 用border-color 的 transparent 制作一个三角形
  14. [京喜]卡红包实现真正0.01买东西
  15. nginx resolver
  16. 坐落尘世的繁华,幽眉清黛任花开花谢
  17. 服务器监控之ping监控
  18. 什么是EIP、ESP、EBP
  19. 转载:Ceph论文译文
  20. 三、道阻且长之单例模式

热门文章

  1. 花呗套现买基金,90后韭菜有多拼?
  2. MUI移动端开发,嵌入ifream,页面返回问题解决
  3. WIN32 完整的开发流程
  4. 什么是SPOOLing技术?
  5. Trainmaster One Hundred Twenty
  6. 搜狗拼音输入法7.2c正式版(支持win8)_去广告优化版
  7. 2、ENVI IDL学习笔记
  8. 用Python写了一个贪吃蛇大冒险小游戏
  9. 爱心代码大全---含十余款特效源码【情人节表白代码】
  10. 论STM32标准库程序修改为HAL库