jvm钩子函数,优雅停机

1,326 阅读1分钟

在java中,如使用线程池或者其他资源需要关闭,则可以使用java的钩子函数,在jvm中注册一个钩子函数,在jvm关闭的时候就会调用这里面的函数,实现某种优雅的停机

        Runtime.getRuntime().addShutdownHook(new ShutdownHookThread(log, new Callable<Void>() {
            @Override
            public Void call() throws Exception {
                controller.shutdown();
                return null;
            }
        }));

来源,RocketMQ源码 org.apache.rocketmq.namesrv.NamesrvStartup#start