php 查看nts,nts | php教程|php源码|php学习
Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。
从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,非线程安全)的版本能够更好的提高效率。
在windows环境下,如果你使用的web server 是apache 或者 iis 7以下版本,则应该选择线程安全的安装文件,而如果你使用Fast-cgi模式时,可以选择非线程安全,因为 web sever 本身能保证线程安全。
可参看phpinfo()的thread safety 属性
php 查看nts,nts | php教程|php源码|php学习相关推荐
- php教程源码分享,php教程|php源码|php学习
echo "今天:".date("Y-m-d")." "; echo "昨天:".date("Y-m-d&qu ...
- php date.php 源码,date | php教程|php源码|php学习
JavaScript date 格式通常支持下面四种类型: 1.ISO Dates YYYY-MM-DD 这样的格式 var d = new Date("2016-03-25"); ...
- 织梦php源码,织梦 | php教程|php源码|php学习
模板文件中使用这个分页标签 {dede:pagelist listsize=3/} 如果要在url中加入参数 像是这样 /reg_user.php?ModelId=0&Registration ...
- Python concurrent.future 使用教程及源码初剖
前言 原文发在这里的 Python concurrent.future 使用教程及源码初剖 垃圾话 很久没写博客了,想了想不能再划水,于是给自己定了一个目标,写点 concurrent.future ...
- Odoo16 教程含源码
Odoo16 教程含源码 Odoo16 开发教程 版本变化 模块开发步骤 源码 Odoo16 开发教程 Odoo 号称全球第一的开源ERP平台,除了提供一站式的企业应用开发解决方案,作为一个网站设计器 ...
- SwiftUI iOS 精品项目之每天收集的故事卡片(教程含源码)
实战需求 SwiftUI iOS 精品项目之每天收集的故事卡片(教程含源码) 每天收集的故事的卡片 本文价值与收获 看完本文后,您将能够作出下面的界面 核心功能 1.每天总共3个问题!选择一个您喜欢的 ...
- 企业开源测试项目实战(附全套实战项目教程+视频+源码)
接口测试项目 1. No matching distribution found for itypes==1.1.0 Could not find a version that satisfies t ...
- java中batch基础_详解Spring batch 入门学习教程(附源码)
详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...
- crm开源系统 tp框架_thinkphp6学习教程与源码 tp6开源CMS系统源码研究
thinkphp6最新正式版框架上市已经有一段时间了,从官方的介绍来看,tp6的框架和tp5有很大的区别,完全重新改写了底层架构代码和逻辑,所以不支持thinkphp5的无缝升级,也就是说如果你之前的 ...
最新文章
- 使用 JMeter 进行压力测试
- Android Gradle 构建工具(Android Gradle Build Tools)是什么?
- Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
- 【Object类、日期、StringBuilder】
- android翻盘效果,行情艰难,Android初中级面试题助你逆风翻盘,每题都有详细答案...
- 黑马程序员--java基础加强之内省(IntroSpector)
- 【转】Odoo开发之:工作流 workflow
- 第一百零六节,JavaScript变量作用域及内存
- 三级网络技术IP地址
- 计算机操作系统---高响应比调度算法,操作系统最高响应比优先调度算法实验报告...
- 微信小程序使用wxParse解析html代码
- 易班应用开发教程php,易班 开发 java开发入门教程
- Android的在线热更新方案_Robust
- 讯飞、有道、谷歌、微软语音sdk集成总结
- RAKsmart韩国服务器与日本服务器的差异
- mysql误删数据恢复操作
- 28个UI免费漂亮的切换开关PSD下载
- 【20210910】【机器/深度学习】lightGBM模型训练中报错:“Cannot set reference after freed raw data“
- python-清华大学镜像源
- 师范生计算机软件技能怎么写,计算机与信息科学学院 软件学院第十三届 师范生课堂教学技能竞赛...
热门文章
- Retrofit2深度解析
- java的public_java中public用法
- 基于HAL库的32工程代码区域意思,及常用函数示例
- 编译安装redis6.2.6
- Java基础二维数组
- 浙江大学 计算机学院 交互设计,浙江大学交互设计考研经历分享(原来跨考这么受欢迎)...
- 三星复仇计划开始:苹果一出LTE设备就要起诉它!
- 学会拒绝摔倒“哭泣”,拒绝接受“溺爱”
- linux使用ros打开奥比中光astra相机,查看红外图像
- C++编码规范与指导zt