我必須使用線程池來運行線程。 我使用Spring框架的TaskExecutor類。 我使用FutureTask類,因爲我需要同步這些線程。 最後的代碼看起來像這樣的:我無法捕捉到FutureTask.get()方法的異常。 FutureTask是由Spring TaskExecutor發起的
private TaskExecutor taskExecutor;
FutureTask futureTask=new FutureTask(new MyTask());
taskExecutor.execute(futureTask);
try {
futureTask.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
實際上,它可能發生執行MyTask線程被中斷。在調試模式下,我可以看到中斷標誌在MyTask的代碼中設置。但不幸的是,中斷異常沒有捕獲,我找不到原因。任何想法?
嗨格雷,現在很清楚。我認爲當創建的線程被中斷時,interrupedException被拋出。實際上,這是調用線程中斷的時候。非常感謝你 – user2807791