這篇文章主要介紹PHP中多進程編程的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了沿河免費建站歡迎大家使用!具體如下:
第一步:
$ php -m 命令查看php是否安裝pcntl 和 posix擴展,若沒有則安裝
使用場景:
1. 要進行大量的網(wǎng)絡耗時的操作
2. 要做大量的運算,并且,系統(tǒng)有多個cpu,為了讓用戶有更快的體驗,把一個任務,分成幾個小任務,最后合并。
多進程常用函數(shù):
pcntl_alarm — 為進程設置一個alarm鬧鐘信號
pcntl_errno — 別名 pcntl_strerror
pcntl_exec — 在當前進程空間執(zhí)行指定程序
pcntl_fork — 創(chuàng)建子進程,在當前進程當前位置產(chǎn)生分支(子進程)。譯注:fork是創(chuàng)建了一個子進程,父進程和子進程 都從fork的位置開始向下繼續(xù)執(zhí)行,不同的是父進程執(zhí)行過程中,得到的fork返回值為子進程 號,而子進程得到的是0。
pcntl_get_last_error — Retrieve the error number set by the last pcntl function which failed
pcntl_getpriority — 獲取任意進程的優(yōu)先級
pcntl_setpriority — 修改任意進程的優(yōu)先級
pcntl_signal_dispatch — 調(diào)用等待信號的處理器
pcntl_signal — 安裝一個信號處理器
pcntl_sigprocmask — 設置或檢索阻塞信號
pcntl_sigtimedwait — 帶超時機制的信號等待
pcntl_sigwaitinfo — 等待信號
pcntl_strerror — Retrieve the system error message associated with the given errno
pcntl_wait — 等待或返回fork的子進程狀態(tài)
pcntl_waitpid — 等待或返回fork的子進程狀態(tài)
pcntl_wexitstatus — 返回一個中斷的子進程的返回代碼
pcntl_wifexited — 檢查狀態(tài)代碼是否代表一個正常的退出。
pcntl_wifsignaled — 檢查子進程狀態(tài)碼是否代表由于某個信號而中斷
pcntl_wifstopped — 檢查子進程當前是否已經(jīng)停止
pcntl_wstopsig — 返回導致子進程停止的信號
pcntl_wtermsig — 返回導致子進程中斷的信號
實例一:
實例二:開多個子進程,避免fork泛濫
注意:
通過pcntl_XXX系列函數(shù)使用多進程功能。注意:pcntl_XXX只能運行在php CLI(命令行)環(huán)境下,在web服務器環(huán)境下,會出現(xiàn)無法預期的結(jié)果,請慎用!
以上是“PHP中多進程編程的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文名稱:PHP中多進程編程的示例分析-創(chuàng)新互聯(lián)
分享URL:http://weahome.cn/article/depiji.html