Java 服务器中,有的时候关闭程序时,我们需要对内存中的一些重要数据做一些后续操作,或者程序异常退出时等情况,在这些情况下可以使用Runtime.addShutdownHook(Thread hook)注册一个或者一组清理线程钩子,这些线程是并发执行的
注意,在以下情况适用:
1、程序正常退出时;
2、使用kill PID关闭进程时;
3、在看Linux、UNIX环境使用ctrl+C关闭进程;
但是,kill -9 PID 是没法触发清理钩子的。
下面有篇文章对这种策略,有个很好的应用场景,值得学习。