该
Runtime.addShutdownHook方法可用于添加一个关闭钩子,该钩子基本上是未启动的
Thread,该钩子在Java虚拟机关闭时执行。
但是,这是应该谨慎对待的领域,因为它是在JVM生命周期的非常敏感的时间执行的。从API规范中获取该
Runtime.addShutdownHook方法:
关机挂钩在虚拟机的生命周期中的某个微妙时间运行,因此应进行防御性编码。尤其应将它们编写为线程安全的,并尽可能避免死锁。
无论如何,请务必仔细阅读一下关机挂钩的工作原理,因为如果没有做好充分的准备,就不应该使用它们。请务必仔细阅读该
Runtime.addShutdownHook方法的API规范。
这是我在搜索有关此答案的信息时发现的几篇文章:
Shutdown Hooks-它显示了一个如何在关闭时添加关闭钩子以记录日志的小例子。
Shutdown Hooks API的设计-以问答形式解决关闭钩子的一些设计决策。



