swoole中的執行緒:
1、MainReactor(主執行緒)
主執行緒會負責監聽server socket,如果有新的連接accept,主執行緒會評估每個Reactor執行緒的連線數量。將此連線分配給連線數最少的reactor線程,做一個負載平衡。
2 、Reactor執行緒群組
Reactor執行緒負責維護客戶端機器的TCP連線、處理網路IO、收發資料完全是非同步非阻塞的模式。
swoole的主線程在Accept新的連接後,會將這個連接分配給一個固定的Reactor線程,在socket可讀時讀取數據,並進行協議解析,將請求投遞到Worker進程。在socket可寫入時將資料傳送給TCP客戶端。
3、心跳包偵測執行緒(HeartbeatCheck)
#Swoole配置了心跳偵測之後,心跳包執行緒會在固定時間內對所有先前線上的連線
傳送偵測封包
4、UDP收包執行緒(UdpRecv)
接收並且處理客戶端udp封包
swoole想要實現最好的效能必須創造出多個工作進程幫助處理任務,但Worker進程就必須fork操作,但是fork操作是不安全的,如果沒有管理會出現很多的殭屍進程,進而影響伺服器效能,同時worker進程被誤殺或因為程式的原因會異常退出,為了確保服務的穩定性,需要重新建立worker進程。
推薦學習: swoole影片教學
#以上是swoole有哪些線程的詳細內容。更多資訊請關注PHP中文網其他相關文章!