Runtime的addShutdownHook方法可用于线程池的关闭

阅读更多
//Runtime的addShutdownHook方法可用于线程池的关闭
//打开jconsole,可看见主线程和子线程tt;
//打印的日志可以看出addShutdownHook方法里的线程在主线程结束后开始执行
public class RuntimeTest {

public static void main(String[] args) {
System.out.println("start.." + new Date());
//主线程结束,ShutdownThread线程开始执行
Runtime.getRuntime().addShutdownHook(
new ShutdownThread("tt")
);

try {
System.out.println("sleep 5 seconds: " + new Date());
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("end.."+new Date());
}

static class ShutdownThread extends Thread{
public ShutdownThread(String name){
super(name);
}

public void run(){
try {
Thread.currentThread().sleep(20000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("shutdown.."+new Date());
}
}

}

你可能感兴趣的:(多线程)