php创建恒定数量的进程(pcntl学习二)

2022-10-11 21:14:16 111 0
魁首哥

code如下:

 0) {
 return $pid;
 }
 return 0;
}
while(true) {
 if (count($child) < $num) {
 $pid = genarate($minLife, $maxLife);
 echo 'child '.$pid.' born '.PHP_EOL;
 if($pid) {
 $child[] = $pid;
 }
 } else if ( count($child) > $num ) {
 $pid = array_pop($child);
 posix_kill($pid,SIGINT);
 echo 'child '.$pid.' killed'.PHP_EOL;
 }
  foreach ($child as $k => $pid) {
 $res = pcntl_waitpid($pid,$status,WNOHANG);
 if($res == -1 || $res > 0 ) {
 unset($child[$k]);
 }
 }
} 

当$num=1,$maxLife=1,$minLife=1时

运行结果如下

只要进程一挂掉,就会里面创建新的进程。再通过pcntl_signal注册一个捕获信号的回调方法,应该就可以了。

收藏
分享
海报
0 条评论
111
上一篇:盘点|2021年最受欢迎的PHP主流框架有哪些? 下一篇:除Python外,PHP也能做爬虫?PHP定时爬取代理IP

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码