DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go 三色标记法详解:并发标记如何保证不漏标不错标

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

三色标记:所有对象初始为白色;从根对象开始标记为灰色;循环:从灰色队列取对象,将其引用的对象标记为灰色、自身标记为黑色,直到灰色队列为空;最后白色对象为不可达,可回收。并发标记的问题:标记期间用户代码可能修改引用关系(黑色对象指向白色对象),导致漏标(误回收)。解决:写屏障——并发标记时,黑色对象写入白色指针会记录/置灰该对象(Go 用混合写屏障),保证标记正确性。

下载推广海报

圈内讨论推广海报

《Go 三色标记法详解:并发标记如何保证不漏标不错标》完整推广海报
REPLIES

回复

0 条回复
暂无回复。