在Windows系统下,PHP有Non Thread Safe和Thread Safe版本的区别,那么我们应该如何选择版本呢?
1 定义
1.1 None-Thread Safe
简称nts,即非线程安全,多个线程访问时不提供数据访问保护,有可能出现更改数据造成所得到的是脏数据,php以fastcgi方式运行的时候选择这个版本,具有更好的性能。
1.2 Thread-Safety
简称ts,即线程安全,多线程访问时采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染,php以ISAPI方式加载的时候选择这个版本。
2 选择
对于现在常用的web服务器,如果选择Apache+PHP的组合,常用ISAPI的方式,所以选择Thread Safety(线程安全)版本;如果选择Nginx+PHP的组合,常用FastCGI的方式,所以选择None-Thread Safe(非线程安全);如果选择IIS+PHP的组合,也常用FastCGI的方式,所以可以选择None-Thread Safe(非线程安全),因为新版本IIS使用这种方式非常高效和稳定。
3 查看版本
通过phpinfo查看Thread Safety选项即可,如果是disabled,表示None-Thread Safe(非线程安全)版本;如果是enable,表示Thread Safety(线程安全)版本。
目前有 0 条评论