垃圾回收-三色法

三色标记清除算法

三色标记是标记-清扫的一个变种算法,对象使用三种颜色:黑色、白色和灰色。 标记过程

  1. 所有对象最初都是白色。

  2. 将所有初始的可达对象,即全局对象或者栈对象(root 集合)标记为灰色。

  3. 任意取出一个灰色对象,将所有它引用到的白色对象标记为灰色,然后将它自身标记为黑色。

  4. 重复上一步,直找不到灰色对象。

  5. 剩下的对象不是白色就是黑色。

  6. 所以黑色对象都是可达的,而白色对象是不可达的,回收掉白色对象。

参考

Last updated

Was this helpful?