CompletableFuture-Verkettung
Asynchrone Operationen ohne Blockierung mit CompletableFuture verketten.
Code-Vergleich
✕ 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);
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Verkettbar
Asynchrone Schritte zu einer lesbaren Pipeline zusammenfügen.
Nicht-blockierend
Kein Thread wartet untätig auf Ergebnisse.
Fehlerbehandlung
exceptionally() und handle() für saubere Fehlerwiederherstellung.
Alter Ansatz
Blockierendes Future.get()
Moderner Ansatz
CompletableFuture
Seit JDK
8
Schwierigkeitsgrad
Fortgeschritten
JDK-Unterstützung
CompletableFuture-Verkettung
Verfügbar
Weitgehend verfügbar seit JDK 8 (März 2014)
Wie es funktioniert
CompletableFuture ermöglicht nicht-blockierende asynchrone Pipelines. Operationen mit thenApply, thenCompose, thenAccept verketten. Fehler mit exceptionally() behandeln. Mehrere Futures mit allOf/anyOf kombinieren.
Zugehörige Dokumentation