老师,三色标记算法能解决mutation问题吗?
来源:6-6 GC基本功面试:说说引用计数和三色标记清除算法?

hllcve
2021-06-22
Mark > Mutation > Sweep
Mark阶段到了E,E被标记为灰色,此时发生Mutation,E引用G断开,D引用G
疑问:因为下一次标记是从灰色E开始且E引用G已经被断开了,所以G不会被扫描到,故一直为白色,但是新增了D对G的引用的(但D已经被标记为了黑色,所以不会再从D开始标记),这时就会发生被D引用的G被回收,这样程序是不是就出问题了啊?明明被引用的对象却被回收了。
写回答
1回答
-
增加引用就应该把被增加的节点涂成灰色,这就是集合的优势。
132021-06-24
相似问题