java使用ShutdownHook优雅地停止服务
在Java程序中可以通过添加关闭钩子,实现在程序退出时关闭资源、平滑退出的功能。
使用Runtime.addShutdownHook(Thread hook)方法,可以注册一个JVM关闭的钩子,这个钩子可
这通常用于确保在应用程序退出时能够执行一些清理工作,比如关闭文件流、释放资源、断开数据库连接等。
要使用ShutdownHook,你需要实现一个Runnable接口,并将其添加到Runtime.getRuntime()的钩子列表中。以下是如何使用ShutdownHook的步骤和示例:
步骤:
-
创建一个Runnable实现类: 创建一个类实现Runnable接口,并在run方法中定义当ShutdownHook被触发时要执行的代码。
-
添加ShutdownHook到Runtime: 使用
Runtime.getRuntime().addShutdownHook
方法将你的Runnable实例添加到JVM的ShutdownHook列表中。 -
移除ShutdownHook(可选): 如果你需要在某个时刻移除ShutdownHook,可以使用
Runtime.getRuntime().removeShutdownHook
方法。
代码
package com.yang.SpringTest.java;
/**
* <p>KillJavaTest</p>
*
* @author By: chengxuyuanshitang
* Package com.yang.SpringTest.java
* Ceate Time 2024-04-13 09:49
*/
public class ShutdownHookTest {
public static void main (String[] args) {
boolean flag = true;
Runtime.getRuntime ().addShutdownHook (new Thread (new Runnable () {
public void run () {
System.out.println ("Run shutdown hook now.");
}
}, "ShutdownHookTest"));
while (flag) {
}
System.out.println ("程序退出");
}
}
在linux执行运行
javac ShutdownHookTest.java
java ShutdownHookTest
再开一个新的命令窗口
jps
kill -15 3877
查看java运行的窗口输出
为什么要用kill -15呢,看下面的文章
【Linux】kill 命令使用-CSDN博客
原文地址:https://blog.csdn.net/wochunyang/article/details/137709287
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!