PHPはマルチプロセス並列操作の詳細を実現する(プロセスを守ることができる)
1082 ワード
次のようになります.
/**
*
* ProcessOpera.php
* terminal /usr/local/php/bin/php ProcessOpera.php &
* ps aux|grep php
*/
ProcessOpera("runCode", array(), 8);
/**
* run Code
*/
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);
}
}
}