在Eclipse启动的进程上执行shutdown hook,可以通过以下步骤实现:
ShutdownHookExample
。ShutdownHookExample
类中,添加以下代码:import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class ShutdownHookExample {
public static void main(String[] args) {
// 创建一个单线程的线程池
ExecutorService executor = Executors.newSingleThreadExecutor();
// 提交一个任务到线程池中
executor.submit(() -> {
try {
System.out.println("任务正在执行...");
TimeUnit.SECONDS.sleep(5);
System.out.println("任务执行完毕");
} catch (InterruptedException e) {
System.out.println("任务被中断");
}
});
// 添加一个关闭钩子,在JVM关闭时执行
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
System.out.println("执行关闭钩子");
executor.shutdown();
try {
// 等待线程池关闭
executor.awaitTermination(5, TimeUnit.SECONDS);
} catch (InterruptedException e) {
System.out.println("线程池关闭被中断");
}
System.out.println("关闭钩子执行完毕");
}));
// 主线程休眠10秒钟,然后退出
try {
TimeUnit.SECONDS.sleep(10);
} catch (InterruptedException e) {
System.out.println("主线程被中断");
}
}
}
ShutdownHookExample
类的main
方法。Ctrl+C
,即可触发关闭钩子的执行。通过以上步骤,可以在Eclipse启动的进程上执行shutdown hook。
领取专属 10元无门槛券
手把手带您无忧上云