本地队列队列为空会去全局队列截取一半goroutine放入本地队列

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

SuperDi

2021-05-19 20:08:36

老师您说本地队列的长度是固定 256,那如果全局队列的一半超过了 256 是怎么处理的啊?

写回答

1回答

助教_小R

2021-07-22

最多只拿本地队列的一半,有代码为证:


if n > int32(len(_p_.runq))/2 {
n = int32(len(_p_.runq)) / 2
}


其中 _p_.runq 的长度是 256。


具体看看代码:src/runtime/proc.go:5571

1

Go高级工程师实战营

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

458 学习 · 266 问题

查看课程