ExecutorService不关闭会怎样,或者怎么样保证web项目的公用线程池在项目结束时在关闭?
认证高级PHP讲师
不主動關閉線程池的話,池裡會有些休眠的線程,通常會在1分鐘以後再被關掉。 所以Web專案中如果使用了執行緒池,最好在 ServletContextListener.destroy 方法中把初始化過的執行緒池關掉,通常用 shutdown() 或 shutdownNow() ,如果做得完善些,可以再加上 awaitTermination 這樣的處理。
shutdown()
shutdownNow()
awaitTermination
不主動關閉線程池的話,池裡會有些休眠的線程,通常會在1分鐘以後再被關掉。
所以Web專案中如果使用了執行緒池,最好在 ServletContextListener.destroy 方法中把初始化過的執行緒池關掉,通常用
shutdown()
或shutdownNow()
,如果做得完善些,可以再加上awaitTermination
這樣的處理。