您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關swoole創建worker的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
swoole是一個多進程模型的框架,當啟動一個進程swoole應用時,一共會創建2+n+m個進程,n為worker進程數,m為TaskWorker進程數,1個master進程和一個manager進程,關系如下圖所示
Master進程為主進程,該進程會創建Manager進程、Reactor線程等工作進/線程。
Worker進程作為Swoole的工作進程,所有的業務邏輯代碼均在此進程上運行。當Reactor線程接收到來自客戶端的數據后,會將數據打包通過管道發送給某個Worker進程。
swoole中worker/task進程都是由Manager進程Fork并管理的。
子進程結束運行時,manager進程負責回收此子進程,避免成為僵尸進程。并創建新的子進程
服務器關閉時,manager進程將發送信號給所有子進程,通知子進程關閉服務
服務器reload時,manager進程會逐個關閉/重啟子進程
fork():
一個進程,包括代碼、數據和分配給進程的資源。fork()函數通過系統調用創建一個與原來進程幾乎完全相同的進程,也就是兩個進程可以做完全相同的事,但如果初始參數或者傳入的變量不同,兩個進程也可以做不同的事。
一個進程調用fork()函數后,系統先給新的進程分配資源,例如存儲數據和代碼的空間。然后把原來的進程的所有值都復制到新的新進程中,只有少數值與原來的進程的值不同。相當于克隆了一個自己。
關于“swoole創建worker的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。