Linux下實(shí)現(xiàn)PHP多進(jìn)程的方法分享
更新時間:2012年08月16日 10:52:46 作者:
PHP多進(jìn)程:使用PHP的Process Control Functions(PCNTL/線程控制函數(shù)),需要的朋友可以參考下
PHP多進(jìn)程:使用PHP的Process Control Functions(PCNTL/線程控制函數(shù))
函數(shù)參考可見:http://www.php.net/manual/zh/ref.pcntl.php
只能用在Unix Like OS,Windows不可用。
編譯php的時候,需要加上–enable-pcntl,且推薦僅僅在CLI模式運(yùn)行,不要在WEB服務(wù)器環(huán)境運(yùn)行。
以下為實(shí)現(xiàn)PHP多進(jìn)程的簡單測試代碼:
<?php
declare(ticks=1);
$bWaitFlag = FALSE; /// 是否等待進(jìn)程結(jié)束
$intNum = 10; /// 進(jìn)程總數(shù)
$pids = array(); /// 進(jìn)程PID數(shù)組
echo ("Start\n");
for($i = 0; $i < $intNum; $i++) {
$pids[$i] = pcntl_fork();/// 產(chǎn)生子進(jìn)程,而且從當(dāng)前行之下開試運(yùn)行代碼,而且不繼承父進(jìn)程的數(shù)據(jù)信息
if(!$pids[$i]) {
// 子進(jìn)程進(jìn)程代碼段_Start
$str="";
sleep(5+$i);
for ($j=0;$j<$i;$j++) {$str.="*";}
echo "$i -> " . time() . " $str \n";
exit();
// 子進(jìn)程進(jìn)程代碼段_End
}
}
if ($bWaitFlag)
{
for($i = 0; $i < $intNum; $i++) {
pcntl_waitpid($pids[$i], $status, WUNTRACED);
echo "wait $i -> " . time() . "\n";
}
}
echo ("End\n");
?>
函數(shù)參考可見:http://www.php.net/manual/zh/ref.pcntl.php
只能用在Unix Like OS,Windows不可用。
編譯php的時候,需要加上–enable-pcntl,且推薦僅僅在CLI模式運(yùn)行,不要在WEB服務(wù)器環(huán)境運(yùn)行。
以下為實(shí)現(xiàn)PHP多進(jìn)程的簡單測試代碼:
復(fù)制代碼 代碼如下:
<?php
declare(ticks=1);
$bWaitFlag = FALSE; /// 是否等待進(jìn)程結(jié)束
$intNum = 10; /// 進(jìn)程總數(shù)
$pids = array(); /// 進(jìn)程PID數(shù)組
echo ("Start\n");
for($i = 0; $i < $intNum; $i++) {
$pids[$i] = pcntl_fork();/// 產(chǎn)生子進(jìn)程,而且從當(dāng)前行之下開試運(yùn)行代碼,而且不繼承父進(jìn)程的數(shù)據(jù)信息
if(!$pids[$i]) {
// 子進(jìn)程進(jìn)程代碼段_Start
$str="";
sleep(5+$i);
for ($j=0;$j<$i;$j++) {$str.="*";}
echo "$i -> " . time() . " $str \n";
exit();
// 子進(jìn)程進(jìn)程代碼段_End
}
}
if ($bWaitFlag)
{
for($i = 0; $i < $intNum; $i++) {
pcntl_waitpid($pids[$i], $status, WUNTRACED);
echo "wait $i -> " . time() . "\n";
}
}
echo ("End\n");
?>
您可能感興趣的文章:
- PHP實(shí)現(xiàn)的多進(jìn)程控制demo示例
- 深入探究PHP的多進(jìn)程編程方法
- PHP多進(jìn)程之pcntl_fork的實(shí)例詳解
- PHP使用pcntl_fork實(shí)現(xiàn)多進(jìn)程下載圖片的方法
- PHP的pcntl多進(jìn)程用法實(shí)例
- php中實(shí)現(xiàn)進(jìn)程鎖與多進(jìn)程的方法
- PHP多進(jìn)程編程總結(jié)(推薦)
- 分享PHP-pcntl 實(shí)現(xiàn)多進(jìn)程代碼
- php多進(jìn)程模擬并發(fā)事務(wù)產(chǎn)生的問題小結(jié)
- PHP多進(jìn)程通信-消息隊列使用
- php多進(jìn)程應(yīng)用場景實(shí)例詳解
相關(guān)文章
thinkphp框架實(shí)現(xiàn)數(shù)據(jù)添加和顯示功能
這篇文章主要為大家詳細(xì)介紹了thinkphp框架實(shí)現(xiàn)數(shù)據(jù)添加和顯示功能的相關(guān)資料,需要的朋友可以參考下2016-06-06
PHP實(shí)現(xiàn)圖片旋轉(zhuǎn)的方法詳解
這篇文章主要為大家詳細(xì)介紹了PHP如何實(shí)現(xiàn)圖片旋轉(zhuǎn)功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)PHP有一定幫助,感興趣的小伙伴可以了解一下2022-11-11
利用static實(shí)現(xiàn)表格的顏色隔行顯示的代碼
利用static實(shí)現(xiàn)表格的顏色隔行顯示的代碼...2007-09-09

