我有一個Java ExecutorService(固定線程池爲1),我將可運行任務傳遞給將來執行。每個任務通常在10秒內完成。 ExecutorService只是完成這些任務。如果我關閉我的應用程序,我運行以下;Java ExecutorService關閉現在需要時代
if (taskProcessor != null) {
taskProcessor.shutdownNow();
while (!taskProcessor.isTerminated()) {
// Wait For All Submitted Tasks To Finish
}
}
問題是,它似乎需要一個年齡就關機,有時可能需要幾分鐘,有時它似乎永遠不會關機,有時在幾秒鐘的停機!執行程序隊列中的任何時候都可能有大約2000個任務,但我只是希望它完成當前正在執行和退出的任務。我在這裏做錯了什麼?
忙碌的等待幾乎不是一個好主意。 – Raedwald