- 查服务后kill-9导致的问题
- 项目增加方法
- 使用kill-2关项目
- 测试
- kill-9 + destrory,没有执行destrory方法
- kill-2 + destroy,执行了destroy方法
- 结论
很多人ps -ef|grep java 看到pid后,顺手kill -9,项目被强制关闭,线程池还没有关闭,会产生数据不一致问题。
项目增加方法 //方法会在kill-2 后被调用
@PreDestroy
public void destroy() {
exe.shutdown();//这里关闭你的资源
}
使用kill-2关项目
可以看到,destroy方法会被调用,方法里的资源也一并释放。
测试 kill-9 + destrory,没有执行destrory方法 kill-2 + destroy,执行了destroy方法 结论一般情况,kill -2 会好于kill -9,效果一样,但多了一步收尾工作,Ctrl+C和kill -2效果接近。



