PHP 的 pcntl_fork 函数应该像 C 中的标准 fork 函数一样分叉一个进程。
但我想知道这个函数是否真的分叉了进程,或者它是否以不同的方式模拟了该行为。
如果它真的分叉了进程,那么很清楚哪个进程是:Apache 的子进程之一。
只要Apache 使用prefork MPM(即每个请求一个进程)就可以了。
但是如果 Apache 使用 worker MPM 会发生什么?
当使用worker MPM 时,每个Apache 子进程都包含许多线程,每个线程处理不同的HTTP 请求。因此,如果您在这种情况下分叉该进程,我什至无法想象所有这些线程和正在服务的请求会发生什么。
因此,如果 pcntl_fork() 真的分叉了该进程,那么如果您将 Apache 设置为使用工作 MPM,我认为使用此函数不是一个好主意。
专家怎么说?我推理得很好,还是我只是在胡说八道?