public static void main(String[] args) {
//Runtime.getRuntime().addShutdownHook(thread);
//该方法在程序结束(意外退出,正常退出)时 可以做一些资源释放的工作
//例如 tomcat在shutdown时 你会看到tomcat并没有立即结束
//但是在linux下 使用 kill-9 杀死程序时 该方法不会得到执行
Runtime.getRuntime().addShutdownHook(new Thread(){
@Override
public void run() {
System.out.println("程序即将退出...");
System.out.println("释放资源...");
System.out.println("程序退出");
}
});
Thread t = new Thread(){
@Override
public void run() {
int i = 0;
while (true){
//模拟程序执行任务时 抛出异常
i++;
if(i == 20){
throw new RuntimeException();
}
try {
System.out.println("正在执行工作..."+i);
sleep(1_00);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
t.start();
}