swoole怎么創建worker

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教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享