[PHP] 简单多进程并发
发布时间:2021-05-21 06:50:17 所属栏目:大数据 来源: https://www.jb51.cc
导读:?企邮搬家进程管理逻辑,经过简化后的功能实现 ? ?PHP//守护进程umask(0); //把文件掩码清0 if (pcntl_fork() != 0){ //是父进程,父进程退出 exit();} posix_setsid();//设置新会话组长,脱离终端 if (pcntl_fork() != 0){ //是第一子进程,结束第一子进程 e
|
?企邮搬家进程管理逻辑,经过简化后的功能实现 ? <?PHP
//守护进程
umask(0); //把文件掩码清0
if (pcntl_fork() != 0){ //是父进程,父进程退出
exit();
}
posix_setsid();//设置新会话组长,脱离终端
if (pcntl_fork() != 0){ //是第一子进程,结束第一子进程
exit();
}
chdir("/"); //改变工作目录
//开启五个子进程
$worker=0;
do {
for($i=0;$i<6;$i++){
$pid = pcntl_fork();
if ($pid == -1) {
return false;
} elseif ($pid == 0) { //子进程,在此处处理业务逻辑
//TODO
sleep(60);
exit;
} else { // parent
$worker++;
if($worker>5){
$id = pcntl_wait($status);
if ($id > 0) {
$worker--;
}
}
}
}
usleep(200000);
} while (true);
while ($worker > 0) {
$id = pcntl_wait($status);
if ($id > 0) {
$worker--;
}
}
?
(编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

