PHP の pcntl_fork 関数は、C の標準の fork 関数と同じようにプロセスを fork することになっています。
しかし、この関数が本当にプロセスを fork するのか、それとも別の方法でその動作をエミュレートするのか疑問に思っていました。
プロセスが本当にフォークされている場合、それがどのプロセスであるかは明らかです: Apache の子プロセスの 1 つです。
Apache が prefork MPM (つまり、リクエストごとに 1 つのプロセス) を使用している限り、問題ありません。
しかし、Apache がワーカー MPM を使用している場合はどうなりますか??
ワーカー MPM が使用されている場合、すべての Apache 子プロセスには多くのスレッドが含まれ、それぞれが異なる HTTP 要求を処理します。したがって、その状況でプロセスをフォークした場合、処理されているすべてのスレッドとリクエストがどうなるか想像もできません。
したがって、pcntl_fork() が実際にプロセスを fork する場合、Apache でワーカー MPM を使用するように設定している場合、この関数を使用するのは得策ではないと思います。
専門家は何と言っていますか?私はうまく推論していますか、それともナンセンスを話しているだけですか?