您的位置:首页 > 编程语言 > PHP开发

php pcntl 多进程学习

2015-05-03 23:51 309 查看
1、捕获子进程退出(监听SIGCHLD信号,然后调用 pcntl_wait 函数)

declare(ticks=1);

pcntl_signal(SIGCHLD, "sig_handler");
function sig_handler($signo)
{
switch ($signo) {
case SIGCHLD:
$status = 0;
$child_id = pcntl_wait($status);
echo sprintf("child exit id: {$child_id} \n");
exit(0);
break;

default:
echo 'uncaugh signal !';
}

}

$pid = pcntl_fork();
if($pid>0)
{
echo sprintf("fork child id: {$pid} \n");

while(1){
sleep(1);
}

}else{
echo "child exit \n";
}


2、捕获子进程退出(直接调用 pcntl_wai* 函数)

3、捕获子进程退出 (io复用监控进程间的管道可读)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: