jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法,这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。
触发jvm关闭的提交:
1、系统正常关闭
Runtime.getRuntime().exit(0);
System.exit(0);
2、断电、异常等非正常关闭
例子:
public static void main(String[] args) {
final Thread thread1 = new Thread(){
public void run() {
System.out.println("thread1........");
}
};
final Thread thread2 = new Thread(){
public void run() {
System.out.println("thread2.................");
}
};
final Thread thread3 = new Thread(){
public void run() {
System.out.println("thread3...............");
}
};
Runtime.getRuntime().addShutdownHook(
new Thread(){
public void run() {
//销毁对象,清理内存
thread1.stop();
thread2.stop();
//清理缓存
}
}
);
thread2.start();
thread3.start();
}