<?php while(1)//循環採用3個進程 { //declare(ticks=1); $bWaitFlag= FALSE; // 是否等待進程結束 //$bWaitFlag = TRUE; // 是否等待進程結束 $intNum= 5; // 進程總數 $pids= array(); // 進程PID數組 for($i= 0; $i<$intNum; $i++) { $pids[$i] = pcntl_fork();// 產生子進程,並且從當前行之下開試運行代碼,並且不繼承父進程的數據信息 /*if($pids[$i])//父進程 { //echo $pids[$i]."parent"."$i -> " . time(). "\n"; } */ if($pids[$i] == -1) { echo"couldn't fork". "\n"; } elseif(!$pids[$i]) { sleep(1); echo"\n"."第".$i."個進程 -> ". time(). " \n"; //$redis->hIncrBy('user_45610', 'badge', 1); //$url=" 抓取頁面的例子 //$content = file_get_contents($url); //file_put_contents('message.txt',$content); //echo "\n"."第".$i."個進程 -> " ."抓取頁面".$i."-> " . time()."\n"; exit(0);//子進程要exit不然會進行遞歸多進程,父進程不要exit不然終止多進程 } if($bWaitFlag) { pcntl_waitpid($pids[$i], $status, WUNTRACED); echo"wait $i -> ". time() . "\n"; } } sleep(1); echo memory_get_usage(); }