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

Yog*_*ele 8 php apache multithreading multiprocessing

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

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

Joe*_*ins 11

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

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

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

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