Go语言的垃圾回收采用的是三色算法。
这里有白色,灰色和黑色三种颜色。
程序开始时所有对象都被标注成白色,随着程序的运行,那些在程序里面有引用的对象将会被标注成灰色,然后依次遍历灰色区域的所有对象,该对象引用的对象也将被标注成灰色,然后该对象被标注成黑色。最好剩余的白色区域的对象表示没有人引用,即可以当做垃圾回收掉
image.png
Go语言的垃圾回收采用的是三色算法。
这里有白色,灰色和黑色三种颜色。
程序开始时所有对象都被标注成白色,随着程序的运行,那些在程序里面有引用的对象将会被标注成灰色,然后依次遍历灰色区域的所有对象,该对象引用的对象也将被标注成灰色,然后该对象被标注成黑色。最好剩余的白色区域的对象表示没有人引用,即可以当做垃圾回收掉
本文标题:Go 垃圾回收机制(三)
本文链接:https://www.haomeiwen.com/subject/seodsftx.html
网友评论