国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 陇西县| 图们市| 濉溪县| 渭源县| 庆城县| 福鼎市| 清涧县| 阳原县| 如皋市| 竹溪县| 珠海市| 方城县| 精河县| 托克逊县| 定远县| 财经| 布尔津县| 油尖旺区| 红河县| 虞城县| 渭南市| 额济纳旗| 怀柔区| 凤阳县| 黄浦区| 安陆市| 元阳县| 禹州市| 济阳县| 郓城县| 衡阳县| 怀化市| 汕尾市| 门头沟区| 临夏市| 黑河市| 肥城市| 通许县| 贡觉县| 九江县| 荆州市|