PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析


Posted in PHP onMarch 28, 2011

一共给了四个版本,VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先。

一、如何选择 PHP5.3 的 VC9 版本和 VC6 版本

VC6 版本是使用 Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择 VC6 版本。

VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择 VC9 版本。

二、如何选择 PHP5.3 的 Thread Safe 和 Non Thread Safe 版本

先从字面意思上理解,Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。

再来看 PHP 的两种执行方式:ISAPI 和 FastCGI。

ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP,建议选择 Thread Safe 版本;

而 FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI 来执行 PHP,建议选择 Non Thread Safe 版本。

再来看PHP的两种执行方式:ISAPI和FastCGI。

FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI(无论搭配 IIS 6 或 IIS 7)执行 PHP ,都建议下载、执行 non-thread safe 的 PHP (PHP 的二进位档有两种包装方式:msi 、zip ,请下载 zip 套件)。

而线程安全检查正是为ISAPI方式的PHP准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread Safe的PHP。

所以,对于PHP5.2选择Thread Safe版本安装,而对于PHP5.3则下载None-Thread Safe,执行PHP比较有效率。

另外,PHP还有VC6,VC9版本之分。

VC6 版本是使用 Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择 VC6 版本。

VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择 VC9 版本。

PHP 相关文章推荐
MySQL数据源表结构图示
Jun 05 PHP
PHP高级OOP技术演示
Aug 27 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
ThinkPHP行为扩展Behavior应用实例详解
Jul 22 PHP
php调用新浪短链接API的方法
Nov 08 PHP
php实现俄罗斯乘法实例
Mar 07 PHP
PHP获取数组的键与值方法小结
Jun 13 PHP
Laravel中注册Facades的步骤详解
Mar 16 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 PHP
Laravel框架实现抢红包功能示例
Oct 31 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 04 PHP
Laravel框架源码解析之反射的使用详解
May 14 PHP
php中关于普通表单多文件上传的处理方法
Mar 25 #PHP
PHP删除特定数组内容并且重建数组索引的方法.
Mar 25 #PHP
PHP学习 变量使用总结
Mar 24 #PHP
优化php效率,提高php性能的一些方法
Mar 24 #PHP
php 代码优化之经典示例
Mar 24 #PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
Mar 24 #PHP
php邮件发送,php发送邮件的类
Mar 24 #PHP
You might like
使用php4加速网络传输
2006/10/09 PHP
小偷PHP+Html+缓存
2006/12/20 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
Python代码解决RenderView窗口not found问题
2016/08/28 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
python爬虫实现中英翻译词典
2019/06/25 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
快速了解Python开发环境Spyder
2020/06/29 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
连锁经营管理专业大学生求职信
2013/10/30 职场文书
心得体会开头
2014/01/01 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
英雄儿女观后感
2015/06/09 职场文书