この記事では、PHP に関する関連知識を提供します。主にマルチプロセスに関連する問題を紹介します。PHP は世界で最高の言語ですが、PHPer にとって、私はまだマルチプロセスについては比較的初心者です。とプロセス管理について、一緒に見ていきましょう。皆様のお役に立てれば幸いです。
推奨学習: 「PHP ビデオ チュートリアル 」
PHP は世界で最高の言語ですが、PHPer にとって、マルチプロセスとプロセス管理はまだあまり馴染みがありません。この記事では、PHPネイティブコードを使用してマルチプロセスを実装する方法を説明します。
まず、pcntl_fork、pcntl_wait、pcntl_waitpid などのマルチプロセスを実装するための PHP の機能を理解する必要があります。等
pcntl_fork ( void ) : int
この関数の機能は、子プロセスを作成し、int 型のプロセス ID を返すことです。親プロセスと子プロセスは、フォーク位置から下方向に実行を続けます。
子プロセスの生成に成功すると、親プロセスの実行スレッドには生成された子プロセスのPIDが返され、子プロセスの実行スレッドには0が返されます。作成に失敗すると、親プロセスのコンテキストで -1 が返され、子プロセスは作成されず、PHP エラーが発生します。
pcntl_wait ( int &$status [, int $options = 0 ] ) : int
この関数の機能は、fork の子プロセスのステータスを待つか、返すことです。この関数は、子プロセスが終了するか、現在のプロセスの中断を要求するシグナルを受信するか、シグナル処理関数が呼び出されるまで、現在のプロセスの実行を一時停止します。この関数が呼び出されたときに子プロセスが終了している場合、この関数はすぐに戻ります。
この関数は、既存の子プロセス番号を返します。エラーの場合は -1、オプションとして WNOHANG が指定されており、使用可能な子プロセスがない場合は 0 を返します。
pcntl_waitpid ( int $pid , int &$status [, int $options = 0 ] ) : int
この関数の機能は、フォークの子プロセスのステータスを待つか返すことです。この関数を呼び出すと、パラメータ pid で指定されたプロセス番号のプロセスが終了するか、現在のプロセスを中断するか信号処理関数を呼び出すシグナルを受信するまで、現在のプロセスの実行が一時停止されます。
pcntl_waitpid () 終了している子プロセスのプロセス ID を返します。エラーが発生した場合は -1、オプションとして WNOHANG が指定されており、使用可能な子プロセスがない場合は 0 を返します。 。
pcntl_signal ( int $signo , callback $handler [, bool $restart_syscalls = true ] ) : bool
この関数の機能は、信号プロセッサをインストールし、signo で指定された信号に対して新しい信号プロセッサをインストールすることです。
signo はシグナル番号です。
handler はシグナル ハンドラーであり、ユーザーが作成した関数またはメソッド、またはシステムの常時オンの SIG_IGN (シグナル ハンドラーを無視) または SIG_DFL (デフォルトのシグナル ハンドラー) にすることができます。
restart_syscalls シグナルの到着時にシステム コールの再起動を使用できるかどうかを指定します。
関数の戻り値は bool 型で、成功した場合は true、失敗した場合は false を返します。
PHP ビデオ チュートリアル >>
以上がPHPを使ってマルチプロセスを実装する方法をご存知ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。