看你会golang,讲下go的协程模型?(GPM模型)

本文阅读 1 分钟
首页 golang 正文
题目序号:(1664)
题目来源:字节跳动
频次:1

答案1:(cxiang)

go协程使用GPM调度模型实现,具体内容如下:

  • G : goroutine协程
  • P:process 调度器,为每一个m分配g
  • M:machine 对应操作系统的线程,g的真正执行者。

P的数量默认是CPU核数,也可以通过GOMAXPROCS来指定数量,每个P都会维护一个runq队列,用于保存G,P会从队列头获取G交给M执行,执行完后放入到队列尾(如果需要继续执行),通过GPM模型实现了多个协程并执行,可以最大限度地利用到CPU

本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论