サーバー上でスクリプトを実行する場合、時間のかかるタスクが避けられず、複数のプロセスを使用することが不可欠です。 PHP5.5 以降、PHP は開発ニーズを満たすためにマルチプロセス要素を追加し始めました。
#注意
複数のプロセスを実装するには有効にする必要がある拡張機能: pcntl、ポジックス。 (推奨学習: PHP ビデオ チュートリアル )
PHP のマルチプロセス プログラミングは Windows 環境ではサポートされていません。この記事は主に Linux 環境で開発およびテストされています簡単な構造図
##主な機能##pcntl_fork: 複数のプロセスを作成します。2 つの項目は呼び出し後に返されるプロセスの pid、0 は子プロセス、0 より大きいは親プロセス (親プロセスは子プロセスの ID を取得するため、0 より大きい)、-1 は作成が失敗したことを意味します
$pid = $pcntlInstall ? pcntl_fork() : 0;if ($pid == -1) { //fork失败 } elseif ($pid > 0) { //父进程 ...... } elseif ($pid == 0) { //子进程 ...... }pcntl_signal: 信号処理コールバック関数を登録します。子プロセスの終了時に送信される信号をキャプチャできます。##
/配合pcntl_signal使用 declare (ticks = 1); //当子进程退出时,会触发该函数,当前子进程数-1 pcntl_signal(SIGCHLD, function ($signo) { switch ($signo) { case SIGCHLD: echo $curChildPro . 'SIGCHLD', PHP_EOL; $curChildPro--; break; } });
pcntl_wait: 親プロセスを一時停止し、子プロセスが終了するのを待つために使用されます
以上がphpはマルチプロセスですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。