好比统计1千万条数据,每次个进程统计10万条php
<?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
一百个进程分别统计数据,最后合并这一百份数据code