Java虚拟机关闭钩子ShutdownHook

java程序部署在服务器上时,Ctrl+C关闭,或者service Servicename stop关闭时(不包括 kill -9 操作),会有一些关闭资源等操作来不及执行。

这时为了程序安全退出,我们可以使用Shutdown Hook来实现。


使用方法:

比如,添加一个方法

public void start() {
     Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { 
            @Override 
            public void run() 
            { 
                for(String ip:channelMap.keySet()) {
                    clear(ip);
                }
                logger.error("unsafe shutdown,Execute Hook.....");
            } 
        }));
 }


程序启动时就调用这个start(),当程序要关闭时就会执行这里定义的线程,把要执行的操作加到这个线程的run方法里即可。



猜你喜欢

转载自blog.csdn.net/u010898743/article/details/79722920
今日推荐