垃圾收集器(理论上)会收集这样的结构吗?
package main
type node struct {
next *node
prev *node
}
func (a *node) append(b *node) {
a.next = b
b.prev = a
}
func main() {
a := new(node)
b := new(node)
a.append(b)
b = nil
a = nil
}
这应该是一个链表。a点到b,b点回a。当我删除a和b(最后两行)中的引用时,两个节点不再可访问。但是每个节点仍然有一个引用。尽管如此,go 垃圾收集器会删除这些节点吗?
(显然不是在上面的代码中,而是在运行时间更长的程序中)。
是否有关于处理这些问题的垃圾收集器的任何文档?
牧羊人nacy
相关分类