在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