三色标记法
三色标记算法是并发收集阶段的重要算法,它是描述追踪式回收器的一种有用的方法,利用它可以推演回收器的正确性。
首先,我们将对象分成三种类型的。
- 黑色:根对象,或者该对象与它的子对象都被扫描了
- 灰色:对象本身被扫描,但还没扫描完该对象中的子对象
- 白色:未被扫描对象,扫描完成所有对象之后,最终为白色的为不可达对象,即垃圾对象
三色标记算法的正常流程
(1)根对象被置为黑色,子对象被置为灰色:
2)继续由灰色遍历,将已扫描了子对象的对象置为黑色。
(3)遍历了所有可达的对象后,所有可达的对象都变成了黑色。不可达的对象即为白色,需要被清理。
读写屏障
- 读屏障 : 在读前增加屏障做点事情(类似aop通知)
- 写屏障 : 在写前增加屏障做点事情(类似aop通知)
漏标
如果在标记过程中&#