php5.2.17线程安全,php线程锁

Windows下的PHP安装文件线程安全和非线程安全的区别

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

首先,Linux下的PHP,没有线程安全版和非线程安全版之分。

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

PHP线程安全与非线程安全的区别:如何选择用哪一个

1、windows + IIS + FastCGI :使用非线程安全版本。解释:以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,不存在多个线程之间可能引发的相互干扰(这种干扰通常都是由于全局变量和静态变量导致的)。

2、如果是以APACHE的模块方式,或者IIS的ISAPI方式运行,建议选择“线程安全”版本,这写模式下的PHP引擎会反复使用执行不同的脚本。如果是以CGI或者FAST-CGI方式执行,可以选择“非线程安全”的版本,以减少额外的检查、提高效率。

3、windows + Apache + PHP(模块) :使用线程安全版本。windows + Apache + PHP(FastCGI) :使用非线程安全版本。

4、判断PHP 是线程安全还是非线程安全:通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。

怎样保证线程安全?

第一,是采用原子变量,毕竟线程安全问题最根本上是由于全局变量和静态变量引起的,只要保证了对于变量的写操作要么全写要么不写,就可以解决线程安全,定义变量用sig_atomic_t和volatile。 第二,就是实现线程间同步啦,用互斥索,信号量。

Confinement 限制数据共享。 将可变数据限制在单一线程内部,避免竞争。核心思想就是线程之间不共享可变数据类型。Immutable 将可变数据类型改为Immutable类型。 避免多线程间的race condition。

不可变 在java语言中,不可变的对象一定是线程安全的,无论是对象的方法实现还是方法的调用者,都不需要再采取任何的线程安全保障措施。如final关键字修饰的数据不可修改,可靠性最高。

未经允许不得转载:便宜VPS网 » php5.2.17线程安全,php线程锁