finalizer

    0热度

    2回答

    用户应该调用​​来释放一些由本机代码管理的关键资源并杀死为该玩家创建的几个内部java线程目的。但是,用户未能调用它,导致一些资源泄漏。添加Finalize方法将不起作用,因为不会因为内部线程被终止而调用finalize ... 我们应该如何处理这种情况? 编辑: 我会看看幻影参考。此外,我不应该终止这些聚合线程,以便玩家对象有资格获得gc吗?

    0热度

    1回答

    以下屏幕显示取自IBM Heap Analyzer。 我想了解'Finalize()方法'和'实施finalize()方法的垃圾对象的数量的对象数量'之间的区别。

    0热度

    4回答

    终结问题假设我有以下类 class A { //some attributes @override protected void finalize() throws Throwable { //do something } } class B extends A { @override

    10热度

    1回答

    “finalizer guardian”[Effective Java,page 30]如何工作? 你用过吗?它解决了任何具体问题吗?

    2热度

    1回答

    我有一个对象具有BackgroundWorker线程(纯粹是一个Action委托队列)。即它是普通的,简单的单生产者单消费者场景。 当收集单个生产者时,我希望它将Terminate操作排入BackgroundWorker线程。 它几乎听起来很简单 - 使用终结器 - 但打破了“不要触摸终结器中的托管资源”规则。 那么我该如何确保一旦没有更多工作要做,线程就干净地终止? 回答我宁愿不拍: IDisp

    2热度

    6回答

    据我所知有两个关于这个问题的阵营 - 第一个认为终结者是C#专用的析构函数。所以他们认为这两件事情是一样的。 第二阵营认为在维基百科上有一些细微的区别 - “术语”析构函数“通常用于表示确定性调用的清理,而”垃圾收集器“在垃圾收集器运行时运行。 “ 但让我为自己澄清一些事情。确定性调用的清理?在C#规范和msdn中写道,不能调用析构函数(它们是自动调用的)。它们可能被自动调用的唯一情况是垃圾回收器

    0热度

    7回答

    据我所知,C#中的析构函数语法(〜ClassName)是一种编写终结器的方法。在编译到IL后,此方法变为Finalize方法。因此,这意味着C#编程语言DOES支持析构函数,但Visual C#作为.net框架的一部分不允许程序员使用它。 编辑:我知道可以使用IDisposable接口来清理非托管资源。问题不在于它。问题是关于Visual C#中的析构函数吗? 因为析构函数的语法是编写终结器=>的

    0热度

    1回答

    嗨,所有即时通讯有这个问题....任何人都可以告诉我是什么原因造成的问题.... ???? 08-14 16:50:12.797: ERROR/Cursor(4453): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/com.paad.whereami/databases/adr

    1热度

    1回答

    是否需要手动关闭java.util.logging.Logger的所有handlers?例如在班级的终结者?

    9热度

    3回答

    终结器总是被.net框架调用,所以序列可能失控;即使构造函数失败,析构函数仍然可以被触发。 当这样的终结者异常来自第三方库时,这可能会带来麻烦:我无法找到处理它们的方法! 例如,在下面的代码中,虽然A类的构造函数总是抛出一个异常并失败,但A的终结器会被.net框架触发,并且〜B()被调用为A具有B类型的属性。 class Program // my code { static void