为什么P的local queue可无锁访问,任务窃取的时候要加锁吗?

本文阅读 1 分钟
首页 golang 正文

题目序号:(1665)

题目来源:字节跳动

频次:1

答案:FH-Bin

答案:FH-Bin

题解部分:如下图:绑定在P上的local queue是顺序执行的,不存在执行状态的G协程抢占,所以可以无锁访问。

image-20220413093707609

任务窃取也是窃取其他P上等待状态的G协程,所以也可以不用加锁。

image-20220413093732931

本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论