为什么PHP有不同版本的ts(线程安全)/ nts(非线程安全),而它不支持多线程?

时间:2010-10-21 02:40:52

标签: php thread-safety

我认为标题很清楚。

1 个答案:

答案 0 :(得分:22)

虽然您无法从PHP代码生成线程,但您可以将PHP与多线程Web服务器一起使用,该服务器处理不同线程上的并发请求。在这种情况下,应该使用PHP的TS(线程安全)版本。

PHP的TS版本将每个请求的状态保存在自己的内存位置。这是必要的,因为多线程服务器中的所有请求共享相同的地址空间。

另一种方法是使用多进程(通常是prefork)服务器。使用这样的服务器,某些状态可以保存在全局变量中,而不会影响并发请求。这就是实现PHP的NTS(非线程安全)版本的方式。