优雅的关闭Java线程池,这样做才是yyds( 四 )

6 总结想要优雅的关闭线程池,首先要理解线程中断的含义 。
其次,关闭线程池有两种方式:shutdown() 和 shutdownNow(),二者最大的区别是 shutdown() 只是把空闲的 woker 置为中断 , 不影响正在运行的woker,并且会继续把待执行的任务给处理完 。shutdonwNow() 则是把所有的 woker 都置为中断,待执行的任务全部抽出并返回 , 日常工作中更多是使用 shutdown() 。
最后,单纯的使用 shutdown() 也不靠谱,还得使用 awaitTermination() 和 JVM 的钩子,才算优雅的关闭线程池 。




推荐阅读