16得票3回答
垃圾收集和终结器:更精细的要点

在回答stackoverflow上的另一个问题以及随后的评论讨论中,我遇到了一个我不清楚的问题。 请纠正我任何可能走错的地方... 当垃圾回收器收集对象时,它调用该对象的终结器(finalizer),在单独的线程上执行(除非通过Dispose()方法禁止了终结器)。在收集过程中,垃圾回收器...

16得票5回答
调试Java内存泄漏:终结器?

我有一个表现异常的应用程序,看起来存在内存泄漏。经过简短的分析,大部分内存(80%)由 java.lang.ref.Finalizer 实例占用。我怀疑 finalizers 无法正常运行。 这种情况的常见原因是finalizer抛出异常。然而, Object 类的 finalize 方法的...

16得票3回答
如果Java的finalize方法存在无限循环或死锁,Finalizer线程将会怎样处理?

如果在Java的finalize方法中出现无限循环或死锁情况,Finalizer线程会怎么处理?

16得票2回答
当VisualStudio调试器退出时执行代码

我曾经以为,在终止调试时(例如按下“停止”按钮或按下Shift + F5),所有实现了finalizer或IDisposable接口的类都会被销毁。 我有一些实现了IDisposable接口的类。在应用程序从调试器(或在生产环境中崩溃)退出时,我想要尝试做一些事情。目前,Dispose()似...

15得票2回答
JavaScript对象的终结器

假设我有一些asm.js代码, 可能是由emscripten创建的。假设它有某种相当大的堆分配结构,该结构被返回为指针,由某些JavaScript库接收并封装成一个美好的JavaScript对象。目前为止还好。 但是,如果该对象超出范围并被垃圾回收会发生什么?现在,asm.js代码无法知道这...

15得票7回答
Python中的__del__()方法有什么用?

来自Python文档: 不能保证在解释器退出时仍然存在的对象会调用__del__()方法。 据我所知,也没有办法保证一个对象在解释器退出前停止存在,因为由垃圾回收器决定对象删除的时间和方式。 那么,这个方法有什么意义呢?你可以在其中编写清理代码,但无法保证它会被执行。 虽然可以...

14得票2回答
使用CLI移除Kubernetes服务目录的Finalizer

我正在尝试在我的云服务提供商(IBM Cloud Private)中配置/取消配置服务实例/绑定。目前存在一个bug,如果服务没有在ICP中取消配置,那么就会留下一个孤立的服务实例在我的ICP环境中,即使我使用force选项也无法删除。他们提供了一个解决方法:kubectl edit Serv...

14得票1回答
Perl 6在清理对象时是否自动调用任何特殊方法?

我曾认为Rakudo几年前就已经支持终结器,但是我找不到相关文档(也许在Classes and Objects中)。列出类中所有方法似乎也不是我想要的。class Butterfly { method DESTROY { put "Destroyed" } # submetho...

14得票1回答
SqlConnection会被垃圾回收器(GC)释放吗?

免责声明:我知道在处理非托管资源时应该实现IDisposable. 其余代码应该是确定性的,并且使用using (...) { }(相当于try {} finally { Dispose(); })来确保尽快进行清理。此外,GC不会调用Dispose(),所以推荐的模式是重写Finalize(...

14得票5回答
在没有终结器的对象上是否应该调用GC.SuppressFinalize?

因某些原因,FXCop似乎认为我应该在Dispose方法中调用GC.SuppressFinalize,无论是否有终结器。 我有遗漏什么吗?有没有理由在未定义终结器的对象上调用GC.SuppressFinalize方法?