GPM调度模型
GPM模型
-
G: 表示Goroutine,G并非执行体,每个G需要绑定到P才能被调度执行。
-
P: Processor,表示逻辑处理器, G和M的调度对象
-
对G来说,P相当于CPU核,G只有绑定到P(在P的local runq中)才能被调度。
-
对M来说,P提供了相关的执行环境(Context),如内存分配状态(mcache),任务队列(G)等,P的数量决定了系统内最大可并行的G的数量
-
M: Machine,对内核级线程的封装,数量对应真实的CPU数(真正干活的对象)