pcntl_fork() 関数は、現在のプロセスの子プロセスを作成します。そして、最初に親プロセスを実行し、子プロセスの PID を返します。これはゼロより大きい必要があります。親プロセスのコードで、pcntl_fork (&$status) を使用すると、子プロセスが戻り値を取得するまで親プロセスを一時停止できます。注: 親プロセスをブロックすると、子プロセスもブロックされます。ただし、親プロセスの終了は子プロセスの動作には影響しません。
親プロセスの実行が完了すると、子プロセスが実行されます。このとき、子プロセスはpcntl_fork()を実行する文(この関数を含む)から実行を開始しますが、この時点ではゼロを返します(つまり、これが子プロセスであることを示します)。子プロセスのコード ブロックに exit ステートメントを含めることが最善です。つまり、子プロセスの実行後すぐに終了します。それ以外の場合は、スクリプトの特定の部分が最初からやり直して実行されます (ルールを理解することはありません)。
要するに、次の 2 つの点に注意してください:
1.不要なエラーを防ぐために、子プロセスに exit; ステートメントを含めるのが最善です。
$pid = pcntl_fork(); //这里最好不要有其他的语句 if ($pid == -1) { die('could not fork'); } else if ($pid) { // we are the parent pcntl_wait($status); //Protect against Zombie children } else { // we are the child }
php pcntl_fork および pcntl_fork の使用法に関するその他の記事については、PHP 中国語 Web サイトに注目してください。