Maison > Java > javaDidacticiel > Quelle est la différence entre CompletableFuture et Future dans Java 9 ?

Quelle est la différence entre CompletableFuture et Future dans Java 9 ?

WBOY
Libérer: 2023-08-18 16:17:12
avant
1022 Les gens l'ont consulté

La classe

CompletableFuture implémente l'interface Future CompletableFuture peut être utilisé comme un futur explicitement complété. L'interface Future ne fournit pas beaucoup de fonctions. Nous devons utiliser la méthode get() pour obtenir les résultats du calcul asynchrone. Cette méthode sera bloquée, il n'y a donc aucun moyen d'exécuter plusieurs tâches dépendantes dans un non. -blocking, et La classe CompletableFuture peut fournir la fonction d'exécuter plusieurs tâches dépendantes dans une chaîne. Ces tâches s'exécutent de manière asynchrone, nous pouvons donc créer une chaîne de tâches qui déclenche la tâche suivante lorsque les résultats de. la tâche en cours sont disponibles. Grammaire

<strong>public class CompletableFuture<T> extends Object implements Future<T>, CompletionStage<T></strong>
Copier après la connexion

Exemple

traduit en chinois par :

Exemple

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;
   }
}
Copier après la connexion

Sortie

<strong>CompletableFutureTest End....
11</strong>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal