2016-02-12 77 views
1

我有一個簡單的ThreadPoolExecutor用例。我想確保在線程執行期間是否有任何類型的運行時異常,線程是否會返回到池中。如何驗證?如果將來的任務拋出異常,線程是否返回到執行程序服務的線程池?

ExecutorService pool = Executors.newFixedThreadPool(30); 
pool.submit(new MyThread()) 
boolean jobExecutionStatus =true 
try{ 
     for (Future<Boolean> future : futureArrayList){ 
       if (jobExecutionStatus){ 
        jobExecutionStatus = future.get(); 
       } 
       else{ 
        break; 
       } 

      } 
     } 
     catch (InterruptedException | ExecutionException e){ 
      jobExecutionStatus = false; 
     } 

回答

1

沒有,如果Exception拋出一個新的Thread將創建(僅在必要時)。

javadoc

如果任何線程終止由於執行過程中失敗之前 關機,如果需要執行 後續任務,將會有新取而代之。

+0

非常感謝您的迅速回復。 –

相關問題