博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
addShutdownHook的用法
阅读量:5020 次
发布时间:2019-06-12

本文共 954 字,大约阅读时间需要 3 分钟。

addShutdownHook作为一个正常关闭Java程序的途径,其实是非常有用的。

 

有可知,当程序正常退出,或者为响应用户中断而终止虚拟机的时候,就会调用里面的线程,来作最后的退出处理。

 

ShutdownHook只是一个已初始化但为启动的线程。当JVM开始执行关闭序列时,它才开始已某种随机程序注册和并行执行shutdown hooks。这是关闭Java程序的一个重要的途径。在shutdown hooks里,可以执行各种关闭和释放资源的方法,例如:

 

private void setupShutdownHook(final Initiator initiator) {        Runtime.getRuntime().addShutdownHook(new Thread() {            @Override            public void run() {                log.info("Shutting down the service... ");                initiator.stop();                journalEventHandler.clear();                ticDbApp1EventHandler.clear();                ticDbApp2EventHandler.clear();                cdl.countDown();                log.info("The Application is shutdown!");            }        });    }

 

 举个栗子,如果是使用了BufferedWriter但是没有在最后执行flush()和close()的方法,很可能就会导致数据丢失。所以在shutdown hooks里面,执行这类型的关闭方法,非常重要。

 

在linux/unix下,Ctrl+C或者kill -15都可以;遗憾的是在Eclipse中无法实现。

 

参考:

本文完

 

转载于:https://www.cnblogs.com/techyc/p/3593724.html

你可能感兴趣的文章
接口测试框架1
查看>>
primefaces p:tableData 显示 List<List>
查看>>
css如何引入外部字体?
查看>>
研华ADAM 6000系列型号枚举值
查看>>
3、单一职责原则
查看>>
simulink使用system test测试 (matlab2014a)
查看>>
搭建apache本地服务器·Mac
查看>>
WATERHAMMER: A COMPLEX PHENOMENON WITH A SIMPLE SOLUTION
查看>>
mybatis 一种高效的批量插入
查看>>
使用git将项目上传到github(最简单方法)
查看>>
Linux ->> mkdir命令
查看>>
下划线 动画
查看>>
oracle-安装-init.sh
查看>>
习题3-1 Score UVA - 1585
查看>>
Nginx的安装与启动
查看>>
C#Equals()和运算符==的区别
查看>>
对angular.js的一点理解
查看>>
动态规划——区间
查看>>
GYM 101350 F. Monkeying Around
查看>>
创建子进程
查看>>