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

【腾讯云】新注册用户域名抢购1元起>>>   

多进程:使用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");
?>

结果:

$ /Applications/XAMPP/bin/php http_fork.php 
Start
End
putclubde:workerman_mickelfeng putclub$ ps -ef |grep php
  501  1472     1   0  9:35下午 ttys001    0:00.00 /Applications/XAMPP/bin/php http_fork.php
  501  1473     1   0  9:35下午 ttys001    0:00.00 /Applications/XAMPP/bin/php http_fork.php
  501  1474     1   0  9:35下午 ttys001    0:00.00 /Applications/XAMPP/bin/php http_fork.php
  501  1475     1   0  9:35下午 ttys001    0:00.00 /Applications/XAMPP/bin/php http_fork.php
  501  1476     1   0  9:35下午 ttys001    0:00.00 /Applications/XAMPP/bin/php http_fork.php
  501  1477     1   0  9:35下午 ttys001    0:00.00 /Applications/XAMPP/bin/php http_fork.php
  501  1478     1   0  9:35下午 ttys001    0:00.00 /Applications/XAMPP/bin/php http_fork.php
  501  1479     1   0  9:35下午 ttys001    0:00.00 /Applications/XAMPP/bin/php http_fork.php
  501  1480     1   0  9:35下午 ttys001    0:00.00 /Applications/XAMPP/bin/php http_fork.php
  501  1481     1   0  9:35下午 ttys001    0:00.00 /Applications/XAMPP/bin/php http_fork.php
  501  1483   298   0  9:35下午 ttys001    0:00.00 grep php
$ 0 ->1525786523  
1 ->1525786524 * 
2 ->1525786525 ** 
3 ->1525786526 *** 
4 ->1525786527 **** 
$ 5 ->1525786528 ***** 
6 ->1525786529 ****** 
7 ->1525786530 ******* 
8 ->1525786531 ******** 
9 ->1525786532 ********* 

 

 

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