PHP中的线程是否有效?

时间:2015-04-23 11:57:10

标签: php multithreading

我正在为Web服务器编写一个php代码,在将结果返回给用户之前,需要在请求时执行一些重要的流程。 我的问题是:apache服务器是否为每个客户端创建了一个单独的线程/进程,还是应该使用多线程来分隔它们? 这些过程包括通过cmd调用其他应用程序的执行以及将文件下载到服务器。

2 个答案:

答案 0 :(得分:1)

对Web服务器的每个请求都是一个单独的进程,它会尝试使用CPU中的一个免费核心,如果当前没有一个免费核心,它将会进入队列并等待。

答案 1 :(得分:1)

在单个Web请求中,您无法在php中使用apache进行多线程处理。你根本无法做到。通常在每次请求时,apache都会分配一个新的O.S.处理。 这是可配置的,但通常在使用php时选择,因为php标准库的许多方法都不是线程安全的。

当我不得不处理大量计算时,我总是选择使用户请求异步,并让第三个进程守护进程在后台进行实际计算。在这种情况下,在用户请求之后,我让客户端轮询守护进程(通过其他Web请求)以了解计算何时完成。