說明
1、FutureTask類不僅實現了Future接口還實現了Runnable接口,表示一種可生成結果的Runnable。
2、FutureTask類實現了Future接口的開啟和取消任務、查詢任務是否完成、獲取計算結果方法。
要獲取FutureTask任務的結果,我們只能通過調用getXXX()系列方法才能獲取,當結果還沒出來時候這些方法會被阻塞,同時這了任務可以是Callable類型(有返回結果),也可以是Runnable類型(無返回結果)。
實例
private static void testFutureTask() throws ExecutionException, InterruptedException {
System.out.println("-------------------- testFutureTask --------------------");
// 創建一個 FutureTask(doOneThing 任務)
FutureTaskfutureTask = new FutureTask<>(FutureTaskDemo::doOneThing);
// 使用線程池執行 doOneThing 任務
ForkJoinPool.commonPool().execute(futureTask);
// 執行 doOtherThing 任務
String doOtherThingResult = doOtherThing();
// 同步等待線程執行 doOneThing 任務結束
String doOneThingResult = futureTask.get();
// 任務執行結果輸出
System.out.println("doOneThingResult ---->>> " + doOneThingResult);
System.out.println("doOtherThingResult ---->>> " + doOtherThingResult);
}
以上就是java異常編程FutureTask的介紹,希望對大家有所幫助。更多關于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經驗,課程大綱更科學更專業,有針對零基礎的就業班,有針對想提升技術的好程序員班,高品質課程助力你實現java程序員夢想。