PHP自带多进程函数
I/O操作每个进程都需要单独建立,不能共用;当只开两个进程的时候,有可能共用一个I/O(只测试redis可以);
function pcntl()
{
//'开始执行'
for ($i = 0; $i < 10; $i++){//建立10个进程
$pid = pcntl_fork();
if ($pid == -1) {
die("could not fork");
} elseif ($pid) {
log_message('error','进程id:'.$pid);
} else {
//集成具体执行方法内容;连接数据库和redis等建议在方法里自己单独建立
get_data();
exit;// 一定要注意退出子进程,否则pcntl_fork() 会被子进程再fork,带来处理上的影响。
}
}
// 等待子进程执行结
while (pcntl_waitpid(0, $status) != -1) {
$status = pcntl_wexitstatus($status);
echo "Child $status completed\n";
}
}
function get_data()
{
#执行内容
}