解析PHP实现多进程并行执行脚本

  由于php的进程是不支持多线程的,有些场景为了方便以及提高性能,可以用php实现多进程以弥补这个不足:

  

复制代码 代码如下:

  #!/usr/bin/env php

  <?php

  $cmds=array(

  array('/apps/bin/launcher.php','charge/promotion_props_stat.php','mobile',1),

  array('/apps/bin/launcher.php','charge/promotion_props_stat.php','mobile',2),

  array('/apps/bin/launcher.php','charge/promotion_props_stat.php','click',1),

  array('/apps/bin/launcher.php','charge/promotion_props_stat.php','click',2),

  array('/apps/bin/launcher.php','charge/promotion_props_stat.php',1),

  array('/apps/bin/launcher.php','charge/promotion_props_stat.php',2)

  );

  foreach($cmds as $cmd){

  $pid=pcntl_fork();

  if($pid==-1){ //进程创建失败

  die('fork child process failure!');

  }

  else if($pid){ //父进程处理逻辑

  pcntl_wait($status,WNOHANG);

  }

  else{ //子进程处理逻辑

  pcntl_exec('/usr/local/bin/php',$cmd);

  }

  }