执行时机:
在jvm执行关闭前才会执行;
场景:
在开发中,对于一些链接,我们是需要在执行完毕后,关闭的。比如数据库链接,io等等。
在一些较复杂的业务中,为了保证关闭一定可以执行,可以使用 Runtime 类的addShutDownHook函数 来处理。
流程:
通过 Runtime类中的静态方法getRuntime()返回当前的Runtime,即当前应用程序的运行时对象,再通过他的addShutDownHook函数注册一个新的虚拟机来关闭钩子。
示例:
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override
public void run() {
synchronized (this) {
if (isOpen()) {
close();
}
}
}
}, "ShutdownHook"));