Heim  >  Artikel  >  Java  >  Was ist der Unterschied zwischen CompletableFuture und Future in Java 9?

Was ist der Unterschied zwischen CompletableFuture und Future in Java 9?

WBOY
WBOYnach vorne
2023-08-18 16:17:12995Durchsuche

Die

CompletableFuture8742468051c85b06f0a0af9e3e506b5c implementiert die Future8742468051c85b06f0a0af9e3e506b5c CompletableFuture kann als Future verwendet werden, der explizit abgeschlossen wurde. Die Future-Schnittstelle bietet nicht viele Funktionen. Wir müssen die Methode get() verwenden, um die Ergebnisse der asynchronen Berechnung zu erhalten. Daher gibt es keine Möglichkeit, mehrere abhängige Aufgaben in einem non auszuführen -blockierende Weise und Die CompletableFuture -Klasse kann die Funktion bereitstellen, mehrere abhängige Aufgaben in einer Kette auszuführen. Diese Aufgaben werden „asynchron“ ausgeführt, sodass wir eine Aufgabenkette erstellen können, die die nächste Aufgabe auslöst, wenn die Ergebnisse vorliegen Die aktuelle Aufgabe ist verfügbar. Grammatik

<strong>public class CompletableFuture<T> extends Object implements Future<T>, CompletionStage<T></strong>
Beispiel übersetzt ins Chinesische als: Beispiel

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;
   }
}

Ausgabe

<strong>CompletableFutureTest End....
11</strong>

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen CompletableFuture und Future in Java 9?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen