php是以多线程还是多进程方式处理并发请求?

时间:2013-12-29 16:12:22

标签: php multithreading apache multiprocessing

我想知道,当php(apache2)同时发出请求时,幕后会发生什么。

如果它是多线程模型,那么线程如何被管理以及并发请求的基准标记是什么。

2 个答案:

答案 0 :(得分:11)

正确的答案是:PHP能够做到这两点,Apache也是如此。

使用prefork mpm,使用多进程模型,在服务器启动时分叉几个apache实例,然后初始化PHP解释器,每个进程一个解释器。

使用worker mpm,模型是基于线程的;可以只有一个进程,对于Apache初始化的每个线程,它再次初始化一个PHP解释器。

在任何一种模式下,解释器的实例在prefork模式下彼此隔离,因为这是分叉工作的方式,而在工作模式下,因为TSRM,PHP的无所不在的部分,没有人真正谈论过。

答案 1 :(得分:-3)