参考: http://www.cnblogs.com/langtianya/p/4300282.html
http://blog.csdn.net/wangxin1982314/article/details/50847638
package com.qz.hesvit;
/**
* @author LIPING
* Runtime.getRuntime().addShutdownHook(shutdownHook);
这个方法的含义说明:
这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,
当系统执行完这些钩子后,jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。
*
* JVM关闭的时候才执行java钩子,最后执行
*/
public class JavaGZ {
// 用途
// 1应用程序正常退出,在退出时执行特定的业务逻辑,或者关闭资源等操作。
// 2虚拟机非正常退出,比如用户按下ctrl+c、OutofMemory宕机、操作系统关闭等。在退出时执行必要的挽救措施。
//例子如下
public static void main(String[] args) {
Thread thread1 = new Thread() {
@Override
public void run() {
System.out.println("thread1thread1thread1");
}
};
Thread thread2 = new Thread() {
@Override
public void run() {
System.out.println("thread2thread2thread2");
}
};
// 定义关闭线程
Thread shutdownThread = new Thread() {
public void run() {
System.out.println("shutdownThread...");
}
};
thread1.start();
thread2.start();
Runtime.getRuntime().addShutdownHook(shutdownThread);
}
}