Linux下实现PHP多进程
Linux下实现PHP多进程
mickelfeng 发表于5年前
Linux下实现PHP多进程
  • 发表于 5年前
  • 阅读 11
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

多进程:使用PHP的Process Control Functions(PCNTL/线程控制函数)
函数参考可见:http://www.php.net/manual/zh/ref.pcntl.php
只能用在Unix Like OS,Windows不可用。
编译php的时候,需要加上–enable-pcntl,且推荐仅仅在CLI模式运行,不要在WEB服务器环境运行。

以下为简短的测试代码:

<?php
declare(ticks=1);
$bWaitFlag= FALSE;/// 是否等待进程结束
$intNum= 10;          /// 进程总数
$pids=array();       ///  进程PID数组

echo("Start\n");

for($i= 0;$i<$intNum;$i++) {

  $pids[$i] = pcntl_fork();/// 产生子进程,而且从当前行之下开试运行代码,而且不继承父进程的数据信息

  if(!$pids[$i]) {
    // 子进程进程代码段_Start
    $str="";
    sleep(5+$i);
    for($j=0;$j<$i;$j++) {$str.="*";}
    echo"$i -> ". time() ." $str \n";
    exit();
    // 子进程进程代码段_End
  }

}
if($bWaitFlag)
{
  for($i= 0;$i<$intNum;$i++) {
    pcntl_waitpid($pids[$i],$status, WUNTRACED);
    echo"wait $i -> ". time() ."\n";
  }
}
echo("End\n");
?>

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
mickelfeng
粉丝 216
博文 915
码字总数 508154
×
mickelfeng
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: