关于 schedt global run queue ,

来源:1-4 Go 程序是怎么跑起来的

Amanoi

2021-05-21 18:41:24

global run queue  这是个链表队列 是所有P 公用的么? 应为是公用的才需要锁对么?

入下图这样理解有错误么?

http://img.mukewang.com/climg/60a78e3a09567bee15380924.jpg

全局队列是双向还是单向的?

写回答

1回答

Xargin

2021-05-21

对的,global run queue 是所有 P 共享的,大家访问要加锁


global run queue 不归属任何一个 P,是个链表


你图上那个“每个 P 管理三个待执行任务队列”有点问题吧,和 P 相关的应该就只有 runnext 和 local run queue


然后就是 GOMAXPROCS 默认和 CPU 核数一致(但是可以通过环境变量修改


其它的没啥问题

0

Go高级工程师实战营

慕课网与 GoCN 社区官方联手打造,定义行业Go高级人才培养标准,4个月,快速晋升为P6+/D7级高级人才。

458 学习 · 266 问题

查看课程