0

私は pcnt_fork を初めて使用します。

<?php
  $pid = pcntl_fork();
  echo $pid;
  if($pid) {
  // parent process runs what is here
  echo "-parent\n";
   }
  else {
  // child process runs what is here
  echo "-child\n";
  } ?>

出力: 25347-親 0-子

私の質問は、ここで $pid は子プロセスのプロセス ID、つまり 25347 ですよね? 次に、親のみをエコーする必要があります。なぜ、出力として0-childも与えるのですか...誰でも説明できますか

4

3 に答える 3

0

fork 操作後の状態は次のようになります。

           fork()
      +------+-----+
    child    |   parent
-------------+------------
> echo $pid  | > echo $pid
0            | 4650
于 2014-03-27T06:50:12.907 に答える
0

pcntl-fork (fork と同様) は子を fork しますが、親は閉じません。

最終的に、親プロセスと子プロセスの 2 つのプロセスが実行されます。

あなたが受け取っている 2 行の print は、2 つの異なるプロセスから来ています: 子の pid を受け取った親と子自体です。

于 2014-03-27T06:42:17.873 に答える