go垃圾回收sweep为什么不用开启写屏障

smokezl · · 1019 次点击
所谓的白色对象就是标记完后用户没有任何引用的对象,怎么会在清扫的时候又去引用呢?
#3
更多评论
sweep是在mark之后的,只清理白色对象,也就是用户没有任何引用的对象,写屏障在mark的时候开启就好了,在mark阶段,如果新建了一个对象,都是直接标记为黑色,表示存活对象。总的来说,清扫的时候没必要写屏障,它只关心白色对象。
#1
清扫的时候,就不会有白色对象被引用,从而到导致本不该被删除却被删除的问题么
#2