关于P的本地队列和全局队列

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

SuperDi

2021-05-25 21:30:57

老师说 runtext 和本地队列空了,本地队列会去全局队列截取一半的数据放到本地队列,但是本地队列的长度只有256,那么如果全局队列的一半数据大于256的话怎么处理呢?

写回答

1回答

Xargin

2021-05-25

是不是当时直播的时候说错了 orz,我后来在动画里修正了,

是从全局队列里拿 (g 总数 / gomaxprocs) 个任务到本地,

同时在拿的时候,有不能超过 128 的判断

1
hargin
回复
huperDi
hpre style="background-color:#272822;color:#f8f8f2;font-family:'JetBrains Mono', monospace;font-size:12pt;">n := sched.runqsize/gomaxprocs + 1


这个 runqsize 是全局队列的 g 总数,我看看动画哦,不对的话我修一下

h021-05-30
共2条回复

Go高级工程师实战营

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

458 学习 · 266 问题

查看课程