Runtime类 的 addShutdownHook()

1,746 阅读1分钟

执行时机:

在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"));