首頁 >php框架 >Swoole >swoole怎麼創建worker

swoole怎麼創建worker

尚
原創
2020-01-13 13:30:522456瀏覽

swoole怎麼創建worker

swoole是一個多進程模型的框架,當啟動一個進程swoole應用時,一共會創建2 n m個進程,n為worker進程數,m為TaskWorker進程數,1個master行程與一個manager行程,關係如下圖所示

swoole怎麼創建worker

Master行程為主行程,該行程會建立Manager行程、Reactor執行緒等工作進/執行緒。

Worker進程作為Swoole的工作進程,所有的業務邏輯程式碼都在此進程上執行。當Reactor執行緒接收到來自客戶端的資料後,會將資料打包通過管道傳送給某個Worker進程。

swoole中worker/task進程都是由Manager進程Fork並管理的。

子程序結束執行時,manager程序負責回收此子程序,避免成為殭屍程序。並創建新的子進程

伺服器關閉時,manager進程將發送訊號給所有子進程,通知子進程關閉服務

伺服器reload時,manager進程會逐個關閉/重啟子進程

fork():

一個流程,包括程式碼、資料和分配給進程的資源。 fork()函數透過系統呼叫創建一個與原來進程幾乎完全相同的進程,也就是兩個進程可以做完全相同的事,但如果初始參數或傳入的變數不同,兩個進程也可以做不同的事。
    一個程序呼叫fork()函數後,系統先給新的程序分配資源,例如儲存資料和程式碼的空間。然後把原來的進程的所有值都複製到新的新進程中,只有少數值與原來的進程的值不同。相當於克隆了一個自己。

推薦學習: swoole教學

#

以上是swoole怎麼創建worker的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn