java – shutdown hook和finalizer方法
发布时间:2020-12-14 05:44:35 所属栏目:Java 来源:网络整理
导读:我只是不明白为什么必须使用Runtime.addShutdownHook.如果你想在jvm退出时做一些清理,那为什么不只是重载守护进程类的finalize方法.使用shutdown hook超过finalize方法的优点是什么? 还有一个不推荐使用的函数runFinalizersOnExit.如果我把它设置为false,我
我只是不明白为什么必须使用Runtime.addShutdownHook.如果你想在jvm退出时做一些清理,那为什么不只是重载守护进程类的finalize方法.使用shutdown hook超过finalize方法的优点是什么?
还有一个不推荐使用的函数runFinalizersOnExit.如果我把它设置为false,我相信finalizer不会运行.这与java保证终结者总是在垃圾回收之前运行. 解决方法
不能保证终结者将永远不会运行.当对象被垃圾回收时,调用finalize().但是当程序运行时,垃圾收集器可能不会收集任何东西.
当jvm正常退出时,运行关闭挂钩.所以即使这不是100%保证,但它是相当接近.只有几个边缘情况下关闭挂钩不运行. 编辑 执行关机挂钩: >当所有JVM线程完成执行时 关机挂钩不执行: >如果由于本地代码中的错误导致VM崩溃,则无法保证挂起是否运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |