您的位置 首页 java

Java程序优雅关闭的两种方法

使用 Java 编写大型系统时,往往需要在程序被kill时将内存中的一些临时数据和状态处理掉,这里称之为优雅关闭。介绍两种比较典型的方法:

1. 调用 Runtime .getRuntime().addShutdownHook()方法,添加结束时运行的 线程

2. 实现SignalHandler

程序启动时 实例化 一个KillHandler,注册TERM信号。

KillHandler killHandler = new KillHandler();

killHandler.registerSignal(“TERM”);

这样,在进程被kill的时候就会触发KillHandler的handle方法。

3. 区别

两种方法的区别在于,第一种方法在进程被kill的时候main函数就已经结束了,仅会运行shutdownHook中run()方法的代码。

而第二种方法中handle函数会在进程被kill时收到TERM信号,对main函数的运行不会有任何影响,我们需要自己在main函数中添加布尔类型的flag,当收到TERM信号时修改该flag,程序便会正常结束。

————————————————

致词:关注转发,有问题请评论。老师我会作答

文章来源:智云一二三科技

文章标题:Java程序优雅关闭的两种方法

文章地址:https://www.zhihuclub.com/178475.shtml

关于作者: 智云科技

热门文章

网站地图