前言
Runtime.getRuntime().addShutdownHook(shutdownHook);
这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,当系统执行完这些钩子后,jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。
测试代码:
@Testpublic void shutDownHookTest() {Thread thread1 = new Thread(() -> System.out.println("thread1 start...."));Thread thread2 = new Thread() {@Overridepublic void run() {System.out.println("thread2 start.....");}};Thread shutDownThread = new Thread() {@Overridepublic void run() {System.out.println("钩子函数-系统服务停止....");}};Runtime.getRuntime().addShutdownHook(shutDownThread);thread1.start();thread2.start();}
执行结果: