提升工作效率利器:
Mac App Store 上的“Whale - 任务管理、时间、卡片、高效率”
根据 Java API, 所谓 shutdown hook 就是已经初始化但尚未开始执行的线程对象。在Runtime 注册后,在 jvm 要停止前,这些 shutdown hook 便开始执行。在jvm停止前,我们可以通过这个钩子来完成我们想完成但是却未完成的逻辑,例如,在jvm停止之前保存完数据。
java.lang.Runtim类提供了addShutdownHook(Thread hook)方法,用来添加虚拟机关闭的钩子。
用途
1应用程序正常退出,在退出时执行特定的业务逻辑。
2虚拟机非正常退出,比如用户按下ctrl+c,操作系统关闭等。在退出时执行必要的挽救措施。
实例:
public class TestOnExit {
public TestOnExit(){
doShutDownWork();
}
private void doShutDownWork(){
Runtime.getRuntime().addShutdownHook(new Thread(){
public void run(){
//程序关闭之前,在这里保存未保存的数据,处理未处理完的逻辑
System.out.println("application will exit ....");
}
});