程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Linux下實現PHP多進程的方法分享

Linux下實現PHP多進程的方法分享

編輯:PHP綜合
PHP多進程:使用PHP的Process Control Functions(PCNTL/線程控制函數)
函數參考可見:http://www.php.net/manual/zh/ref.pcntl.php
只能用在Unix Like OS,Windows不可用。
編譯php的時候,需要加上–enable-pcntl,且推薦僅僅在CLI模式運行,不要在WEB服務器環境運行。

以下為實現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");
?>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved