PHP多進(jìn)程簡(jiǎn)單實(shí)例小結(jié)
本文實(shí)例講述了PHP多進(jìn)程。分享給大家供大家參考,具體如下:
PHP創(chuàng)建多進(jìn)程需要使用到pcntl模塊 在編譯時(shí)加上--enable-pcntl打開進(jìn)程控制支持,不是Unix類系統(tǒng)不支持此模塊
php官網(wǎng)介紹http://php.net/manual/zh/book.pcntl.php,創(chuàng)建子進(jìn)程需要使用到pcntl_fork(),文檔上介紹該函數(shù)說 ,pcntl_fork — 在當(dāng)前進(jìn)程當(dāng)前位置產(chǎn)生分支(子進(jìn)程)。
譯注:fork是創(chuàng)建了一個(gè)子進(jìn)程,父進(jìn)程和子進(jìn)程 都從fork的位置開始向下繼續(xù)執(zhí)行,不同的是父進(jìn)程執(zhí)行過程中,得到的fork返回值為子進(jìn)程號(hào),而子進(jìn)程得到的是0。失敗時(shí),在 父進(jìn)程上下文返回-1,不會(huì)創(chuàng)建子進(jìn)程,并且會(huì)引發(fā)一個(gè)PHP錯(cuò)誤。
<?php $pid = pcntl_fork(); var_dumP($pid); ?>
運(yùn)行上面面代碼,會(huì)返回兩個(gè)值,一個(gè)是0和子進(jìn)程的PID;
<?php $i=0; while($i!=5){ $pid = pcntl_fork(); echo "進(jìn)程ID:".$pid."==".$i++.PHP_EOL; } ?>
運(yùn)行上面程序發(fā)現(xiàn)進(jìn)程數(shù)指數(shù)增長(zhǎng) 剛好是2^5=32個(gè);原因是每一條都執(zhí)行了while循環(huán),到最后成了進(jìn)程的指數(shù)增長(zhǎng)——也就是說fork的時(shí)候把while循環(huán)也帶了進(jìn)去,父進(jìn)程在執(zhí)行fork的過程中;會(huì)得到子進(jìn)程的進(jìn)程號(hào)
而子進(jìn)程會(huì)的得到是0;意味著0就是子進(jìn)程標(biāo)志;改正后代碼是這樣的
<?php $i=0; while($i!=5){ $pid = pcntl_fork(); echo "進(jìn)程ID:".$pid."==".$i++.PHP_EOL; if ($pid == 0) { //code exit(0); } } ?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP進(jìn)程與線程操作技巧總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語法入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php多進(jìn)程中的阻塞與非阻塞操作實(shí)例分析
- php多進(jìn)程并發(fā)編程防止出現(xiàn)僵尸進(jìn)程的方法分析
- php 的多進(jìn)程操作實(shí)踐案例分析
- php 多進(jìn)程編程父進(jìn)程的阻塞與非阻塞實(shí)例分析
- php實(shí)現(xiàn)的簡(jiǎn)單多進(jìn)程服務(wù)器類完整示例
- PHP 多進(jìn)程與信號(hào)中斷實(shí)現(xiàn)多任務(wù)常駐內(nèi)存管理實(shí)例方法
- php swoole多進(jìn)程/多線程用法示例【基于php7nts版】
- PHP基于swoole多進(jìn)程操作示例
- 詳解PHP多進(jìn)程消費(fèi)隊(duì)列
相關(guān)文章
php微信開發(fā)之自定義菜單實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了php微信開發(fā)之自定義菜單實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11使用WordPress發(fā)送電子郵件的相關(guān)PHP函數(shù)用法解析
這篇文章主要介紹了使用WordPress發(fā)送電子郵件的相關(guān)PHP函數(shù)用法解析,文中還提到了常見的郵件無法發(fā)送的情況的解決,需要的朋友可以參考下2015-12-12PHP迭代器和迭代的實(shí)現(xiàn)與使用方法分析
這篇文章主要介紹了PHP迭代器和迭代的實(shí)現(xiàn)與使用方法,結(jié)合實(shí)例形式分析了PHP迭代器的概念、原理、定義與使用方法,需要的朋友可以參考下2018-04-04