3

私は次のことを達成したい:

配列を初期化します。子プロセスは、いくつかの要素を配列に追加します。親プロセスは、いくつかの要素を配列に追加します。最後に、終了する前に、すべての要素を出力します。

以下は私が書いたコードです:

<?php
$values=array();
$pid = pcntl_fork();
if (!$pid) {
   sleep(2);
   $values[]="Put by child";
   exit(0);
}
$values[]="Put by parent";
pcntl_waitpid($pid, $status);
print_r($values);
?>

ただし、1 つの値のみを出力します - Put by parent. 誰かが動作を説明し、正しいコードを提案できますか?

よろしく、JP

4

3 に答える 3

7

(クロスポストでごめんなさい)

socket_create_pair()をご覧になることをお勧めします。

PHP マニュアルには、fork() の親と子の間のプロセス間通信 (IPC) の非常に短く簡単な例があります。

また、serialize()unserialize()を使用すると、配列のような複雑なデータ型を転送することもできます...

于 2013-12-06T12:41:56.590 に答える