golang gc回收机制
v1.3 前使用标记清除算法 (缺点 让程序暂停会出现卡顿)暂停业务逻辑,找出不可达和可达对象 stw开始标记 标记所有可达对象清除不可达对象停止暂停,重复此过程,直到进程结束三色标记法创建的所有对象都为白色gc 回收时遍历第一层节点,将节点标记为灰色遍历灰色节点下一层,将可达对象标记为灰色,当前灰色节点标记为黑色重复直到随后一层将白色对象清除如何三色标记不加stw 保护,可能会出现对象丢失灰色对象丢失了白色对象上一层的灰色对象又引用了白色对象为了解决使用全局stw
复制链接