Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php是否以多线程或多进程方式处理并发请求?_Php_Multithreading_Apache_Multiprocessing - Fatal编程技术网

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

php是否以多线程或多进程方式处理并发请求?,php,multithreading,apache,multiprocessing,Php,Multithreading,Apache,Multiprocessing,我想知道,当php(apache2)同时提供请求时,幕后会发生什么 如果是多线程模型,那么线程是如何管理的,并发请求的基准是什么。请参阅。正确的答案是:PHP可以同时完成这两个任务,Apache也可以 在prefork mpm中,使用了多进程模型,服务器启动时会分叉几个apache实例,然后初始化PHP解释器,每个进程一个解释器 使用worker-mpm,模型是基于线程的;可能只有一个进程,对于Apache初始化的每个线程,它会再次初始化一个PHP解释器 在任何一种模式下,解释器的实例都是彼此隔

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


如果是多线程模型,那么线程是如何管理的,并发请求的基准是什么。

请参阅。

正确的答案是:PHP可以同时完成这两个任务,Apache也可以

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

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


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

可能重复@Pavel我不同意,因为您指定的问题是关于如何模拟线程,而不是同时提供请求时发生的情况。