ShutdownHook - 优雅地停止服务
一什么是ShutdownHook Runtimejava中相关方法源码 ApplicationShutdownHooksjava 二java进程平滑退出的意义 三java进程平滑退出的思路 四如何屏敝第三方组件的ShutdownHook 五实现服务的平滑退出 1 Http请求 2 dubbo请求 3 RabbitMQ消费 4 Quartz任务 六为何重启时有时会有ClassNotFoundException 一、什么是ShutdownHook? 在Java程序中可以通过添加关闭钩子,实现在程序退出时关闭资源、平滑退出的功能。 使用Runtime.addShutdownHook(Thread hook)方法,可以注册一个JVM关闭的钩子,这个钩子可以在以下几种场景被调用: 1. 程序正常退出 2. 使用System.exit() 3. 终端使用Ctrl+C触发的中断 4. 系统关闭 5. 使用Kill pid命令干掉进程 Runtime.java中相关方法源码 public void addShutdownHook (Thread hook) { SecurityManager sm = System.getSecurityManager(); if (sm != null ) { sm.checkPermission( new RuntimePermission(