色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

php多進程中的阻塞與非阻塞操作實例分析

瀏覽:105日期:2022-09-11 10:45:44

本文實例講述了php多進程中的阻塞與非阻塞操作。分享給大家供大家參考,具體如下:

我們通過pcntl_fork來創建子進程,使用pcntl_wait和pcntl_waitpid來回收子進程。

子進程退出后,父進程沒有及時回收,就會產生僵尸進程。

例1:

<?phpdefine(’FORK_NUMS’, 5);$pids = array(); //我們創建5個子進程for($i = 0; $i < FORK_NUMS; ++$i) { $pids[$i] = pcntl_fork(); if($pids[$i] == -1) { die(’fork error’); } else if ($pids[$i]) { pcntl_wait($status); } else { echo getmypid() , ' {$i} rn'; exit; }}

我們通過for循環fork出5個子進程,父進程會阻塞著等待子進程退出,然后創建下一個子進程。

上述代碼輸出結果如下:

20081 020082 120083 220084 320085 4

但我們創建多進程的目的,就是為了能夠并行的處理任務,阻塞的方式并不是我們想看到的。

例2:

<?phpdefine(’FORK_NUMS’, 5); $pids = array(); //我們創建5個子進程for($i = 0; $i < FORK_NUMS; ++$i) { $pids[$i] = pcntl_fork(); if($pids[$i] == -1) { die(’fork error’); } else if ($pids[$i]) { pcntl_wait($status, WNOHANG); } else { echo getmypid() , ' {$i} rn'; exit; }}

我們可以通過設置pcntl_wait的第二個參數為WNOHANG來控制進程是否阻塞。

該函數可以在沒有子進程退出的情況下立刻跳出執行后續代碼。

pcntl_wait等同于以pid為-1調用pcntl_waitpid函數。 pcntl_waitpid函數可以等待指定pid的進程。

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP進程與線程操作技巧總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

標簽: PHP
相關文章:
主站蜘蛛池模板: 高清国产美女一级a毛片 | 97超频国产在线公开免费视频 | 免费观看欧美一区二区三区 | 在线91精品国产免费 | 99精品久久秒播无毒不卡 | 久久精品国产亚洲欧美 | 1024手机基地在线看手机 | 国产欧美亚洲精品一区 | 999国内精品永久免费视频 | 日本一级大黄毛片免费基地 | 国产97视频在线 | 精品国产日韩亚洲一区在线 | 国产亚洲精品久久久久久久网站 | 国产亚洲高清不卡在线观看 | 综合久久久久久 | 久久精品国产精品亚洲艾 | 米奇精品一区二区三区在线观看 | 久久在线观看免费视频 | 亚洲成在人线久久综合 | xxx国产老太婆视频 xxx欧美老熟 | 久久手机精品视频 | 成人国产亚洲欧美成人综合网 | 日本暖暖视频在线播放 | 国产黄色在线播放 | 欧美成人免费网在线观看 | 99视频有精品视频免费观看 | 成人精品一区二区三区 | 91人碰 | 久久精品亚洲乱码伦伦中文 | 免费在线国产视频 | 99视频在线观看免费视频 | 国产精品资源手机在线播放 | 亚洲欧美日本国产综合在线 | 亚洲一区二区三区四区五区 | 成年人毛片 | 一区二区三区中文 | 成人免费xxx色视频 成人免费大片a毛片 | 92av在线 | 在线欧美不卡 | 一区二区三区亚洲视频 | 亚洲 欧美 日韩在线 |