[PHP] 简单多进程并发
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:58
[PHP] 简单多进程并发
<div>
陶士涵
2024-10-15 04:13:11
</div>
<pre><?php<br/>
//守护进程
umask(0); //把文件掩码清0
if (pcntl_fork() != 0){ //是父进程,父进程退出
exit();<br/>
}
posix_setsid();//设置新会话组长,脱离终端
if (pcntl_fork() != 0){ //是第一子进程,结束第一子进程
exit();<br/>
}
chdir(“/”); //改变工作目录
//开启五个子进程
\(worker=0;<br/>
do {
for(\)i=0;\(i<6;\)i++){
$pid = pcntl_fork();<br/>
if ($pid == -1) {<br/>
return false;<br/>
} elseif ($pid == 0) { //子进程,在此处处理业务逻辑
//TODO
sleep(60);
exit;<br/>
} else { // parent<br/>
$worker++;<br/>
if($worker>5){<br/>
$id = pcntl_wait($status);<br/>
if ($id > 0) {<br/>
$worker--;<br/>
}<br/>
}<br/>
}<br/>
}<br/>
usleep(200000);
} while (true);
while ($worker > 0) {
$id = pcntl_wait($status);<br/>
if ($id > 0) {<br/>
$worker--;<br/>
}<br/>
}
<div>






