ExecutorService不关闭会怎样,或者怎么样保证web项目的公用线程池在项目结束时在关闭?
认证高级PHP讲师
不主动关闭线程池的话,池里会有些休眠的线程,通常会在1分钟以后再被关掉。所以Web项目中如果使用了线程池,最好在 ServletContextListener.destroy 方法中把初始化过的线程池关掉,通常用 shutdown() 或 shutdownNow() ,如果做得完善些,可以再加上 awaitTermination 这样的处理。
shutdown()
shutdownNow()
awaitTermination
不主动关闭线程池的话,池里会有些休眠的线程,通常会在1分钟以后再被关掉。
所以Web项目中如果使用了线程池,最好在 ServletContextListener.destroy 方法中把初始化过的线程池关掉,通常用
shutdown()
或shutdownNow()
,如果做得完善些,可以再加上awaitTermination
这样的处理。