golang垃圾回收机制了解吗?

题目来源:学而思

答案1:

垃圾回收就是对程序中不再使用的内存资源进行自动回收的操作。

三色标记法

  • 初始化状态下所有对象都是白色的。

  • 从根节点开始遍历所有对象,把遍历到的对象变成灰色对象

  • 遍历灰色对象,将灰色对象引用的对象也变成灰色对象,然后将遍历过的灰色对象变成黑色对象

  • 循环步骤3,直到灰色对象全部变黑色。

  • 通过写屏障检测对象有变化。重复以上操作

  • 收集所有的白色对象(垃圾)