手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

PHP的pcntl多进程实现

时间:2024-11-04 22:46:37

1、假设我想要启动20个进程,将1-80w的数据分成20份来做,主进程等待所有子进程都结束了才退出。

2、<?php$max= 800000;$workers= 20;$pids屏顿幂垂= array();for($i= 0; $i媪青怍牙< $workers; $i++){$pids[$i] = pcntl_fork();switch($pids[$i]) {case-1:echo"fork error : {$i} \r\n";exit;case0:$param= array('lastid'=> $max/ $workers* $i,'maxid'=> $max/ $workers* ($i+1),);$this->executeWorker($input, $output, $param);exit;default:break;}}foreach($pidsas$i=> $pid) {if($pid) {pcntl_waitpid($pid, $status);}}?>

3、这里当pcntl_fork出来以后,会返回一个pid值,这个pid在子进程中看是0,在父进程中看是子进程的pid(>0),剧安颌儿如果pid为-1说明fork出错了。使用一个$pids数组就可以让主进程等候所有进程完结之后再结束了

© 手抄报圈