首頁  >  文章  >  Java  >  java異常編程FutureTask實例分析

java異常編程FutureTask實例分析

WBOY
WBOY轉載
2023-06-03 17:10:051457瀏覽

說明

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 任务)
    FutureTask<String> futureTask = 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實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除