Chaînage avec CompletableFuture
Enchaîne des opérations asynchrones sans blocage avec CompletableFuture.
Comparaison de Code
✕ Pre-Java 8
Future<String> future =
executor.submit(this::fetchData);
String data = future.get(); // blocks
String result = transform(data);
✓ Java 8+
CompletableFuture.supplyAsync(
this::fetchData
)
.thenApply(this::transform)
.thenAccept(IO::println);
Un problème avec ce code ? Dites-le nous.
Pourquoi la méthode moderne gagne
Enchaînable
Composez des étapes asynchrones dans un pipeline lisible.
Sans blocage
Aucun thread ne reste inactif en attendant les résultats.
Gestion des erreurs
exceptionally() et handle() pour une récupération propre des erreurs.
Ancienne Approche
Future.get() bloquant
Approche Moderne
CompletableFuture
Depuis JDK
8
Difficulté
Intermédiaire
Support JDK
Chaînage avec CompletableFuture
Disponible
Disponible depuis JDK 8 (mars 2014)
Comment ça fonctionne
CompletableFuture permet des pipelines asynchrones non bloquants. Enchaînez les opérations avec thenApply, thenCompose, thenAccept. Gérez les erreurs avec exceptionally(). Combinez plusieurs futurs avec allOf/anyOf.
Documentation Associée