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数组就可以让主进程等候所有进程完结之后再结束了

  • php 多进程教程
  • linux系统下安装php的pcntl扩展
  • PHP利用Gearman来处理并行多进程问题
  • Python之多进程与多线程
  • Python多进程间同步互斥方法lock
  • 热门搜索
    关于春节的语文手抄报 法制教育的手抄报 我爱我校手抄报内容 争做文明少年手抄报 手抄报感恩父母 感恩手抄报花边 手抄报感恩内容大全 低碳环保我先行手抄报 诚信从我做起手抄报 养成教育手抄报内容