5

比如统计1千万条数据,每次个进程统计10万条

<?php
for ($x=0,$y=100000;$y<=10000000;$x=$y,$y=$y+100000) {
    $pid=pcntl_fork();
    if($pid==-1){ //进程创建失败
        die('fork child process failure!');
    }
    else if($pid){ //父进程处理逻辑
        pcntl_wait($status,WNOHANG);
    }
    else{ //子进程处理逻辑
        //$x,$y是传递给test.php脚本的参数
        pcntl_exec('/usr/local/bin/php',array('test.php',$x,$y));
    }
}

这段代码的效果等同于用php命令行执行脚本test.php

    /usr/local/bin/php test.php 0 100000
    /usr/local/bin/php test.php 100000 200000
    /usr/local/bin/php test.php 200000 300000
    .
    .
    .
    /usr/local/bin/php test.php 9900000 10000000

一百个进程分别统计数据,最后合并这一百份数据


疯狂的麦克斯
137 声望3 粉丝

I'm a bug