背景
技术群遇到一个面试题分享:
Q: 为什么优先从p的freeg中获取,这样做有什么优点?
他描述的问题应该是为什么优先从本地队列拿,而不是steal或者全局。
当一个g执行完成之后,并不是直接收回g的内存空间,而是把g加入到p所对应的freeg列表当中,这就是空闲的g。
操作全局队列要加锁。如果是为啥要从本地队列里面拿,好像是为了避免多个p竞争锁?
参考
1.深入golang runtime的调度 2.Golang深入理解GPM模型
原创文章转载请注明出处: 深入golang runtime的调度