91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php實現多進程的案例

發布時間:2020-10-23 14:22:06 來源:億速云 閱讀:298 作者:小新 欄目:編程語言

這篇文章主要介紹了php實現多進程的案例,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

php實現多進程的方法:首先開啟pcntl擴展;然后用array_chunk函數把指定數組切割為每500個元素一個數組;接著進行父進程邏輯處理以及子進程處理;最后等待子進程執行結束即可。

php多進程實現

當一個進程執行時間太長,需要是用多進程分解任務,縮短程序執行時間

pcntl是php的一個多進程擴展,pcntl是process control的縮寫

下面簡單講下pcntl實現多進程的方式。

pcntl_fork — 在當前進程當前位置產生分支(子進程)。譯注:fork是創建了一個子進程,父進程和子進程 都從fork的位置開始向下繼續執行,不同的是父進程執行過程中,得到的fork返回值為子進程 號,而子進程得到的是0。

例子:

$habit_class這個數組有5000條數據,所以先用array_chunk函數把該數組切割為每500個元素一個數組。
$habit_class = array_chunk($habit_class,500,true);
foreach($habit_class as $k2=>$v2){
$pid = pcntl_fork();
if ($pid == -1) {
die("could not fork");
} elseif ($pid) {
//這里是父進程邏輯處理,父進程會返回子進程的pid;
} else {// 子進程處理,子進程返回的pid未0;
foreach($v2 as $k=>$v){
    //進行具體業務處理
}
}
exit;// 一定要注意退出子進程,否則pcntl_fork() 會被子進程再fork,帶來處理上的影響。
}
}
// 等待子進程執行結束
while (pcntl_waitpid(0, $status) != -1) {
$status = pcntl_wexitstatus($status);
//echo "Child $status completed\n";
}

感謝你能夠認真閱讀完這篇文章,希望小編分享php實現多進程的案例內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

江孜县| 鹤山市| 海安县| 西乡县| 图们市| 商都县| 上林县| 阳西县| 兴业县| 临朐县| 西畴县| 襄城县| 于田县| 驻马店市| 墨竹工卡县| 绥德县| 沂源县| 多伦县| 上林县| 富民县| 水城县| 石门县| 陵水| 新蔡县| 杂多县| 磐石市| 沛县| 太谷县| 邢台市| 黔东| 石河子市| 临西县| 珠海市| 塔城市| 手游| 开鲁县| 清水县| 宜君县| 绥中县| 沐川县| 莱阳市|