PHPの複数プロセス並列動作を詳しく解説(デーモンプロセスとしても利用可能)_PHPチュートリアル

WBOY
リリース: 2016-07-21 15:06:10
オリジナル
987 人が閲覧しました

以下に示すように:

コードをコピーします コードは次のとおりです:

/**
* エントリ関数
* このファイルを ProcessOpera.php として保存します
* ターミナルで /usr/local/php/bin/php ProcessOpera.php &
を実行します*/

ProcessOpera("runCode", array(), 8);

/**
* コードを実行します
 */
function runCode($opt = array()) {
//デーモンプロセスで実行する必要があるコード
}

/**
* $func は、特定の処理を実行する子プロセスの関数名です
* $opt は、$func の配列形式のパラメータです
* $pNum は、fork の子プロセスの数です
*/
function ProcessOpera($ func, $opts = array (), $pNum = 1) {
while(true) {
$pid = pcntl_fork();
if($pid == -1) {
exit("pid fork error");
}
if($ pid) {
static $execute = 0;
$execute++;
if($execute >= $pNum) {
pcntl_wait($status);
$execute--;
}
} else {
while(true) {
//somecode
$func($opts);
sleep(1);
}
exit(0);
}
}
}

http://www.bkjia.com/PHPjc/327645.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327645.html技術記事以下に示すように: 次のようにコードをコピーします: /** * エントリ関数 * このファイルを ProcessOpera.php として保存 * /usr/local/php/bin/php を実行 ProcessOpera.php nbsp;* ターミナルでプロセスを表示します。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート