GMP是三個縮寫
G : groutine
M : Machine 系統執行緒
P : Processor 處理器
GMP調度就是回圈在與P(處理器)系結的M(系統執行緒)上尋找可執行的G(協程)

在當前P(處理器)上創建G(groutine)后 , 會把G放入P的本地佇列或者全域佇列 , 本地佇列限制256個 , 滿了就放全域佇列
在當前P(處理器)創建或者喚醒M(系統執行緒) , 去事件回圈執行G(groutine)
在當前P(處理器)上如果全域/本地佇列為空 , 會去從別的處理器上竊取一半的G拿來執行

P 的數量受環境變數 GOMAXPROCS 的直接影響 , 一般設定為當前機器的內核數
M 的數量默認限制是10000 , 超出會報錯
G 的數量一般沒有限制 ,理論上受記憶體影響
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/273110.html
標籤:Go
下一篇:關于動態規劃法
