説明
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 中国語 Web サイトの他の関連記事を参照してください。