Go垃圾回收中三色标记是哪三色,分别代表什么?

提问者:帅平 问题分类:面试刷题
Go垃圾回收中三色标记是哪三色,分别代表什么?
1 个回答
今夜星满天
今夜星满天
三色主要有:白色,灰色,黑色。分别代表有:
白色:
白色表示的对象是暂时还没有被标记的对象。在垃圾回收的初始阶段,所有的对象都是白色的。如果一个对象在整个垃圾回收过程中都保持白色状态,那么这个对象被认为是不可达的,最终将被垃圾回收器回收。
灰色
灰色表示的对象是指那些已经被发现可达,但还没有完全处理的对象。在垃圾回收的过程中,从根对象开始,将可达的对象标记为灰色。然后垃圾回收器会处理这些灰色对象,查找它们引用的其他对象,并将这些对象也标记为灰色。灰色对象就像是垃圾回收器的工作列表,它会不断将灰色对象转换为黑色,并将它们引用的对象标记为灰色。
黑色
黑色表示的对象是指那些已经被完全处理的对象。它们已经被标记为可达,并且所有它们指向的对象也都已经被标记。黑色对象不会被垃圾回收器回收,它们将继续存在于内存中直到它们变得不可达。
发布于:5个月前 (11-25) IP属地:四川省
我来回答