前端之家收集整理的这篇文章主要介绍了
php是以多线程还是多进程方式处理并发请求?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道,当
PHP(apache2)提供同步请求时幕后会发生什么.
如果它是一个多线程模型,那么线程如何被管理以及并发请求的基准标记是什么.
正确的答案是:
PHP能够做到这两点,Apache也是如此.
使用prefork mpm,使用了一个多进程模型,在服务器启动时分叉了几个apache实例,这些实例又初始化了PHP解释器,每个进程都有一个解释器.
使用worker mpm,模型是基于线程的;可以只有一个进程,对于Apache初始化的每个线程,它再次初始化一个PHP解释器.
在任何一种模式下,解释器的实例在prefork模式下彼此隔离,因为这是分叉工作的方式,而在工作模式下,因为TSRM,PHP的无所不在的部分,没有人真正谈论.