好比統計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