GMP中,M的数量怎么控制,P呢?

本文阅读 1 分钟
首页 golang 正文

题目序号:129

题目来源:字节跳动

频次:1

答案1:(在远方)

M:内核级线程
G:代表一个goroutine
P:Processor,处理器,用来管理和执行goroutine的。

M的数量问题:

  1. Go语⾔本身是限定M的最⼤量是10000
  2. runtime/debug包中的SetMaxThreads函数来设置
  3. 有⼀个M阻塞,会创建⼀个新的M
  4. 如果有M空闲,那么就会回收或者睡眠

P的数量问题:

取决于设置的GOMAXPROCS,go新版本默认使用最大内核数,比如你有8核处理器,那么P的数量就是8
本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论