国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

分享PHP-pcntl 實現多進程代碼

2024-05-04 23:50:17
字體:
來源:轉載
供稿:網友

PHP使用PCNTL系列的函數也能做到多進程處理一個事務。比如我需要從數據庫中獲取80w條的數據,再做一系列后續的處理,這個時候,用單進程?你可以等到明年今天了。。。所以應該使用pcntl函數了。

下面我們來看個實例

代碼

<?php$arChildId = array();for($i = 0; $i < 10; $i++){$iPid = pcntl_fork();if($iPid == -1){  die('can/'t be forked.');}if($iPid){  # 主進程邏輯  $arChildId[] = $iPid;}else  {  # 子進程邏輯  $iPid = posix_getpid(); # 獲取子進程的ID  $iSeconds = rand(5, 30);  echo '* Process '. $iPid. ' was created, and Executed, and Sleep '. $iSeconds. PHP_EOL;  excuteProcess($iPid, $iSeconds);  exit();}}while(count($arChildId) > 0){foreach($arChildId as $iKey=> $iPid){  $res = pcntl_waitpid($iPid, $status, WNOHANG);  if($res == -1 || $res > 0)  {    unset($arChildId[$iKey]);    echo '* Sub process: '. $iPid. ' exited with '. $status. PHP_EOL;  }}}# 子進程執行的邏輯function excuteProcess($iPid, $iSeconds){file_put_contents('./log/'.$iPid.'.log', $iPid.PHP_EOL, FILE_APPEND);sleep($iSeconds);}?>

運行結果

* Process 16163 was created, and Executed, and Sleep 11* Process 16164 was created, and Executed, and Sleep 21* Process 16165 was created, and Executed, and Sleep 24* Process 16166 was created, and Executed, and Sleep 27* Process 16167 was created, and Executed, and Sleep 8* Process 16168 was created, and Executed, and Sleep 14* Process 16169 was created, and Executed, and Sleep 14* Process 16170 was created, and Executed, and Sleep 26* Process 16171 was created, and Executed, and Sleep 20* Process 16172 was created, and Executed, and Sleep 21* Sub process: 16167 exited with 0* Sub process: 16163 exited with 0* Sub process: 16169 exited with 0* Sub process: 16168 exited with 0* Sub process: 16171 exited with 0* Sub process: 16164 exited with 0* Sub process: 16172 exited with 0* Sub process: 16165 exited with 0* Sub process: 16170 exited with 0* Sub process: 16166 exited with 0

 


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 曲沃县| 绥棱县| 长葛市| 理塘县| 修武县| 红河县| 介休市| 乐业县| 化隆| 龙口市| 邵武市| 镇原县| 石渠县| 星子县| 栖霞市| 克拉玛依市| 蓝田县| 沐川县| 安图县| 甘泉县| 阿拉善右旗| 巴林右旗| 鄢陵县| 沂南县| 六安市| 肇源县| 桦南县| 来凤县| 唐海县| 皋兰县| 将乐县| 上林县| 鸡东县| 黄龙县| 萨嘎县| 枝江市| 左贡县| 武宣县| 河间市| 娱乐| 南安市|