关于 schedt global run queue ,
来源:1-4 Go 程序是怎么跑起来的
Amanoi
2021-05-21 18:41:24
global run queue 这是个链表队列 是所有P 公用的么? 应为是公用的才需要锁对么?
入下图这样理解有错误么?
全局队列是双向还是单向的?
1回答
Xargin
2021-05-21
对的,global run queue 是所有 P 共享的,大家访问要加锁
global run queue 不归属任何一个 P,是个链表
你图上那个“每个 P 管理三个待执行任务队列”有点问题吧,和 P 相关的应该就只有 runnext 和 local run queue
然后就是 GOMAXPROCS 默认和 CPU 核数一致(但是可以通过环境变量修改
其它的没啥问题
相似问题