編譯php的時候,須要加上–enable-pcntl,且推薦僅僅在CLI模式運行,不要在WEB服務器環境運行。php
如下爲實現PHP多進程的簡單測試代碼:數組
代碼以下:服務器
<?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"); ?>