在我的webapp中,我創建了一個使用固定大小的ThreadPool的ExecutorService
的服務。我在整個應用程序生命週期中重複使用相同的ExecutorService
。在webapp中優雅地關閉ExecutorService?
private static ExecutorService pool = Executors.newFixedThreadPool(8);
所有在Tomcat的運行時書亭下降,這使我有以下錯誤:
appears to have started a thread named [pool-1-thread-1] but has failed to stop it. This is very likely to create a memory leak.
我意識到我需要書亭的tomcat下來之前關閉ExecutorService的。索姆斯SO線程已經談論這個,但我找不到一個乾淨的方式來處理這個問題。
我應該使用ShutdownHook
建議@ Tim-bender在Graceful shutdown of threads and executor?還是應該使用CachedThreadPool來代替?
正是我需要知道的 –