ホームページ  >  記事  >  Java  >  Java 9 の CompletableFuture と Future の違いは何ですか?

Java 9 の CompletableFuture と Future の違いは何ですか?

WBOY
WBOY転載
2023-08-18 16:17:12942ブラウズ

CompletableFuture8742468051c85b06f0a0af9e3e506b5c クラスは、Java で Future8742468051c85b06f0a0af9e3e506b5c インターフェイスを実装します。 CompletableFuture 明示的に完了したFutureとして使用できます。 将来 インターフェイスには多くの機能がありません。非同期計算の結果を取得するには、get() メソッドを使用する必要があります。このメソッドはブロックされるため、実行する方法はありません。 ノンブロッキング CompletableFuture クラスで複数の依存タスクを実行する クラスは、複数の依存タスクをチェーンする機能を提供できます。これらのタスクは 非同期

方法で実行されるため、次のことが可能です。現在のタスクの結果が利用可能になったときに次のタスクをトリガーするタスク チェーンを作成します。

文法

<strong>public class CompletableFuture<T> extends Object implements Future<T>, CompletionStage<T></strong>

中国語への翻訳:

import java.util.function.Supplier;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public class CompletableFutureTest {
   public static void main(String args[]) throws ExecutionException, InterruptedException {
      Calculator calc = new Calculator(4, 7);
      <strong>CompletableFuture<Integer></strong> future = CompletableFuture.<strong>supplyAsync</strong>(calc);
      future.<strong>thenAccept</strong>(result -> {
         System.out.println(result);
      });
      System.out.println("CompletableFutureTest End.... ");
      Thread.sleep(10000);
   }
}

<strong>// Calculator class</strong>
class Calculator implements <strong>Supplier<Integer></strong> {
   private int x, y;
   public Calculator(int x, int y) {
      this.x = x;
      this.y = y;
   }
   <strong>@Override</strong>
   public Integer get() {
      try {
         Thread.sleep(3000);
      } catch(InterruptedException e) {
         e.printStackTrace();
      }
      return x + y;
   }
}

出力
<strong>CompletableFutureTest End....
11</strong>
###

以上がJava 9 の CompletableFuture と Future の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。