你知道如何用 PHP 實現多程序嗎?
本文將講解如下內容:
1.PHP 原生程序函式介紹
2.PHP 實現多程序程式碼
1、 PHP 原生程序函式
雖然說 PHP 是世界上最好的語言,但是對於 PHPer 們來說,對多程序、程序管理還是相對陌生的。本文將講解一下使用 PHP 原生程式碼如何實現多程序。
首先我們要了解 PHP 實現 多程序的函式 ,如 pcntl_fork 、 pcntl_wait、pcntl_waitpid 等。
pcntl_fork ( void ) : int
這個函式的作用是建立子程序,並且返回 int 型別的程序 ID,父程序和子程序都是從 fork 的位置開始向下繼續執行。
子程序建立成功時,在父程序執行執行緒內返回產生的子程序的 PID,在子程序執行執行緒內返回 0。建立失敗時,在父程序上下文返回 - 1,不會建立子程序,並且會引發一個 PHP 錯誤。
pcntl_wait ( int &$status [, int $options = 0 ] ) : int
這個函式的作用是等待或返回 fork 的子程序狀態。此函式會掛起當前程序的執行,直到一個子程序退出或者受到一個訊號要求中斷當前程序或者呼叫一個訊號處理函式。如果一個子程序在呼叫此函式時已經退出,此函式立刻返回。
此函式返回退出的子程序號,發生錯誤時返回 - 1,如果提供了 WNOHANG 作為 option 並且沒有可用子程序時返回 0。
pcntl_waitpid ( int $pid , int &$status [, int $options = 0 ] ) : int
這個函式的作用是等待或返回 fork 的子程序狀態。呼叫這個函式會掛起當前程序的執行,直到引數 pid 指定的程序號的程序退出,或者接收到一個訊號要求中斷當前程序或呼叫一個訊號處理函式。
pcntl_waitpid () 返回退出的子程序程序號,發生錯誤時返回 - 1, 如果提供了 WNOHANG 作為 option,並且沒有可用子程序時返回 0。
pcntl_signal ( int $signo , callback $handler [, bool $restart_syscalls = true ] ) : bool
這個函式的作用是安裝訊號處理器,為 signo 指定的訊號安裝一個新的訊號處理器。
signo 為訊號編號。
handler 為訊號處理器,可以是使用者建立的函式或方法,也可以是系統常亮 SIG_IGN(忽略訊號處理程式)或 SIG_DFL(預設訊號處理程式)。
restart_syscalls 指定當訊號到達時系統呼叫重啟是否可用。
函式返回值為 bool 型,成功時返回 true,失敗時返回 false。
2、 PHP 實現多程序程式碼
- 設計模式之狀態模式
- 如何實現資料庫讀一致性
- 我是怎麼入行做風控的
- C 11精要:部分語言特性
- 吳恩達來信:人工智慧領域的求職小 tips
- EasyCV帶你復現更好更快的自監督演算法-FastConvMAE
- 某車聯網App 通訊協議加密分析(四) Trace Code
- 帶你瞭解CANN的目標檢測與識別一站式方案
- EasyNLP玩轉文字摘要(新聞標題)生成
- PostgreSQL邏輯複製解密
- 基於 CoreDNS 和 K8s 構建雲原生場景下的企業級 DNS
- 迴圈神經網路(RNN)可是在語音識別、自然語言處理等其他領域中引起了變革!
- 技術分享| 分散式系統中服務註冊發現元件的原理及比較
- 利用谷歌地圖採集外貿客戶的電話和手機號碼
- 跟我學Python影象處理丨關於影象金字塔的影象向下取樣和向上取樣
- 帶你掌握如何使用CANN 運算元ST測試工具msopst
- 一招教你如何高效批量匯入與更新資料
- 一步步搞懂MySQL元資料鎖(MDL)
- 你知道如何用 PHP 實現多程序嗎?
- KubeSphere 閘道器的設計與實現(解讀)