三色不变性

三色不变性

Content #

为了解决漏标,错标的问题,我们先需要定义“三色不变性”,如果我们的堆上对象的引用关系不管怎么修改,都能满足三色不变性,那么也不会发生对象丢失问题。

三色不变性可以分为强三色不变性和弱三色不变性两种。

强三色不变性(strong tricolor invariant),禁止黑色对象指向白色对象。

弱三色不变性(weak tricolor invariant),黑色对象可以指向白色对象,但指向的白色对象,必须有能从灰色对象可达的路径。

From #