你知道如何用 PHP 實現多程式嗎?
本文將講解如下內容:
1.PHP 原生程式函式介紹
2.PHP 實現多程式程式碼
1、 PHP 原生程式函式
雖然說 PHP 是世界上最好的語言,但是對於 PHPer 們來說,對多程式、程式管理還是相對陌生的。本文將講解一下CRMEB打通版商城系統使用 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 實現多程式程式碼
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70021881/viewspace-2914865/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 你知道前端是如何實現水印的嗎前端
- 你知道Redis可以實現延遲佇列嗎?Redis佇列
- CAS你知道嗎?底層如何實現?ABA問題又是什麼?關於這些你知道答案嗎
- 你知道嗎,Flutter內建了10多種showFlutter
- 都知道Base64,Base32你能實現嗎?
- 都用過@Autowired,但你知道它是怎麼實現的嗎
- 面試官問:多執行緒同步內部如何實現的,你知道怎麼回答嗎?面試執行緒
- 你知道低程式碼BPM平臺嗎?
- 這10條PHP7中的禁忌,你知道嗎?PHP
- 你真的知道怎麼實現一個延遲佇列嗎?佇列
- 如何用PHP實現Socket伺服器PHP伺服器
- PHP實現master-worker守護多程式PHPAST
- 你真的知道JS嗎JS
- 現在寫 PHP,你應該知道這些PHP
- 1v1影片原始碼,你知道如何實現多執行緒的順序執行嗎?原始碼執行緒
- 你知道可以通過網址訪問的Servlet如何實現嗎?Servlet
- 【嗅探底層】你知道Synchronized作用是同步加鎖,可你知道它在JVM中是如何實現的嗎?synchronizedJVM
- 分散式鎖的多種實現方式,你瞭解嗎?分散式
- 你知道嗎,Flutter內建了10多種Button控制元件Flutter控制元件
- PHP開發者該知道的多程式消費佇列PHP佇列
- 你真的知道跨域嗎跨域
- 你知道 Java 有哪些引用嗎?Java
- 多種雲資源管理用什麼軟體好?你知道嗎?
- 畫江湖之 PHP 多程式開發 [實現守護程式化]PHP
- 每日一學:你知道如何在 RabbitMQ 中實現 Work queues工作佇列模式嗎?MQ佇列模式
- 從0到1優雅的實現PHP多程式管理PHP
- 你知道Laravel為什麼會成為最優雅的PHP框架嗎?LaravelPHP框架
- PHP中的構造方法和析構方法你知道怎麼用了嗎?PHP構造方法
- 最負盛名的程式設計競賽你都知道嗎?程式設計
- 報警機制如何用多執行緒實現執行緒
- 你知道黑客的入侵方式都有哪些嗎?這些你知道幾個?黑客
- 你知道Laravel Collection的實際使用場景有哪些嗎?Laravel
- 你知道蘋果企業簽名嗎?蘋果
- 你真的知道js的原型鏈嗎??JS原型
- 你知道[ ].slice.call()的原理嗎?
- 前端面試題:你知道websocket嗎?前端面試題Web
- 你知道SSL是如何工作的嗎?
- 你知道SQLite中有哪些約束嗎?SQLite