PHP5.3的VC9、VC6、Thread Safe、Non Thread Safe的区别

PHP5.3的VC9、VC6、Thread Safe、Non Thread Safe的区别

PHP一共给了四个版本,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(无论搭配 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比较有效率。

时间: 2024-10-02 19:17:24

PHP5.3的VC9、VC6、Thread Safe、Non Thread Safe的区别的相关文章

php vc6 vc9:PHP版本VC6与VC9、Thread Safe与None-Thread Safe等的区别

最近发现很多PHP程序员对PHP版本知识了解不是很清楚,自己也看了不少类似的文章,还是感觉不够明确和全面,网上的结论又都是模棱两可,在此,给出最完整甚至武断的解释.本文讲解:VC6与VC9,Thread Safety与None-Thread Safe,Apache module与fastcgi的区别与选择.PHP的大版本主要分三支:PHP4/PHP5/PHP6其中,PHP4由于太古老.对OO支持不力已基本被淘汰,请无视PHP4.PHP6由于基本没有生产线上的应用,还基本只是一款概念产品,很多功能

PHP版本VC6与VC9/VC11/VC14、Thread Safe与None-Thread Safe等的区别

原文:PHP版本VC6与VC9/VC11/VC14.Thread Safe与None-Thread Safe等的区别        最近正好在弄一个PHP的程序,在这之前一直没有怎么以接触,发现对PHP版本知识了解不是很清楚,自己看了不少类似的文章,还是感觉不够明确和全面,        网上的结论又都是模棱两可,在此,给出最完整甚至武断的解释.(内面部分内容是摘自其它程序员的博文)       本文讲解:VC6与VC9,Thread Safety与None-Thread Safe,Apache

PHP版本VC6和VC9、Non Thread Safe和Thread Safe的区别

链接:http://www.cnblogs.com/neve/articles/1863853.html 想更新个PHP的版本,PHP的windows版本已经分离出来了,见http://windows.php.net/download/,但是上面有很多不同的版本,包括VC9, VC6,  x86 Non Thread Safe, x86 Thread Safe, 好像没有x64版本的,(现在特别喜欢用64位的软件),版本有点多,主要的区别和如何选择不同的版本如下: If you are usin

PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么_php技巧

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

采用vc6 和采用vc2010 封装 ocx 的区别?

问题描述 采用vc6 和采用vc2010 封装 ocx 的区别? 今天进行了一个测试,采用vc6 atl封装一个ocx库,采用vc2010atl封装了一个ocx库,使用同一个js脚本调用,发现vc2010调用正常,但是vc6的就会调用失败,这个应该是vc6在采用atl封装的时候,是否需要有特别注意的地方,初学者能否指点下,谢谢 解决方案 需要实现 safe接口的ocx才能用js调用 解决方案二: 用ActiveX Control Test Container测试,vc6的那个正常么? 解决方案三

转 Java中User Thread和Daemon Thread的区别

Java将线程分为User线程和Daemon线程两种.通常Daemon线程用来为User线程提供某些服务.程序的main()方法线程是一个User进程.User进程创建的进程为User进程.当所有的User线程结束后,JVM才会结束. 通过在一个线程对象上调用setDaemon(true),可以将user线程创建的线程明确地设置成Daemon线程.例如,时钟处理线程.idle线程.垃圾回收线程.屏幕更新线程等,都是Daemon线程.通常新创建的线程会从创建它的进程哪里继承daemon状态,除非明

Thread.Sleep(1);Thread.Sleep(10);Thread.Sleep(100);Thread.Sleep(1000);的实际效果

问题描述 Thread.Sleep(1);Thread.Sleep(10);Thread.Sleep(100);Thread.Sleep(1000);的实际效果为什么不是暂停1ms.10ms.100ms.1000ms呢?privatevoidbutton_DJQiDong_Click(objectsender,EventArgse){label0.Text=DateTime.Now.ToString()+":"+DateTime.Now.Millisecond.ToString();T

java中thread线程start和run的区别_java

最近看到一个题目,代码如下: 复制代码 代码如下: public static void main(String args[]) {Thread t = new Thread() {public void run() {pong();}}; t.run();System.out.println("ping");}static void pong() {System.out.println("pong");} 问,结果会输出什么? 我运行了很多次,结果都是pong p

Java多线程:“基础篇”03之Thread中start()和run()的区别

概要 Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答.本章内容包括: start() 和 run()的区别说明 start() 和 run()的区别示例 start() 和 run()相关源码(基于 JDK1.7.0_40) 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479083.html start() 和 run()的区别说明 start() : 它的作用是启动一个新线程,新线程会执行相应的run()