gpt4 book ai didi

c# - 删除根时的垃圾收集

转载 作者:太空狗 更新时间:2023-10-30 01:06:39 25 4
gpt4 key购买 nike

我用 c# 实现了一个二叉树,方法 clear() 使根为空,从而删除了对堆中根节点的引用。这使得堆中的根节点有资格进行垃圾回收。

但是在一个垃圾回收周期中只收集根节点然后它的两个子节点将在下一个周期中有资格进行垃圾回收并采取尽可能多的周期移除树作为树的深度还是会在一个周期内收集堆中的整棵树

最佳答案

整棵树都会被收集,因为GC在一个循环中找到了所有无法到达的对象。因为树中的节点都不可访问(从一些活的根),所以应该对整个节点集进行 GC。

这是 GC 工作的有效方式 - 但它也是处理自引用数据结构(例如双向链表)的好方法(这会导致任何不采用的算法出现问题) “考虑到一些可达根的可达性”。

关于c# - 删除根时的垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14808365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com