PHP pcntl が実際にどのように機能するかを理解しようと何時間、何日、何週間も費やしましたが、実際に何が起こっているのか正確にはわかりません。
なぜ親子?私は Debian を使用しています (私が認めなければならないコンピューターの専門家になるにはほど遠いです) が、私がやりたいことは、webSocket クライアントからメッセージを受信し (これは既に実行できています)、他のユーザーの話を聞き続けることだけです。
つまり、メッセージを受信して a を使用するとsleep(5);
、サーバーはこのコードが完了するまで他のメッセージをリッスンしません。
sleep(5)
はテスト用であることに注意してください。何百ものメッセージを同時に処理することを計画しているため、どのようpcntl
に役立つかを理解しようとしています.
$pid = pcntl_fork();
echo "start\n";
if($pid) {
// parent process runs what is here
echo "parent\n";
}
else {
// child process runs what is here
echo "child\n";
}
echo "end\n";
上記のスクリプトの背後で正確に何が起こっているのでしょうか? この結果が得られるのはなぜですか?
始める
親
終わり
始める
子
終わり
コンピューターが何を「考えている」のか説明してもらえますか?