java安全退出程序------关闭钩子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java安全退出程序------关闭钩子相关的知识,希望对你有一定的参考价值。

测试代码:


public class TestHook {

public static boolean hookFlag = false;

public static void main(String[] args) {

    Thread shutDownThread = new Thread() {
        public void run() {
            TestHook.hookFlag = true;
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("hook success!"+TestHook.hookFlag);
        }
    };
    Runtime.getRuntime().addShutdownHook(shutDownThread);
    System.out.println("hook init" + TestHook.hookFlag);
    while(!TestHook.hookFlag) {
        try {
            Thread.sleep(1000);
            System.out.println("没安全退出");
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    System.out.println("安全退出");
}

}


执行命令 kill [pid]


运行结果:

技术分享图片

以上是关于java安全退出程序------关闭钩子的主要内容,如果未能解决你的问题,请参考以下文章

tomcat关闭钩子

Java关闭钩子

JAVA 虚拟机钩子

从JDK源码看关闭钩子

JAVA虚拟机关闭钩子(Shutdown Hook)

JAVA虚拟机关闭钩子(Shutdown Hook)