Concurrency Fortgeschritten

Asynchrone Operationen ohne Blockierung mit CompletableFuture verketten.

✕ 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.
🔗

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
CompletableFuture-Verkettung
Verfügbar

Weitgehend verfügbar seit JDK 8 (März 2014)

CompletableFuture ermöglicht nicht-blockierende asynchrone Pipelines. Operationen mit thenApply, thenCompose, thenAccept verketten. Fehler mit exceptionally() behandeln. Mehrere Futures mit allOf/anyOf kombinieren.

Teilen 𝕏 🦋 in