Sobes.tech
Middle

Wofür sind die Klassen Future und CompletableFuture in Java gedacht?

sobes.tech KI

Antwort von AI

Die Klassen Future und CompletableFuture in Java sind dafür vorgesehen, mit Ergebnissen asynchroner Berechnungen zu arbeiten.

  • Future stellt ein Ergebnis dar, das in Zukunft verfügbar sein wird. Mit Future kann man überprüfen, ob die Berechnung abgeschlossen ist, das Ergebnis abrufen (die Methode get blockiert den Thread, wenn das Ergebnis noch nicht bereit ist) oder die Aufgabe abbrechen.

  • CompletableFuture erweitert die Möglichkeiten von Future, indem es eine bequeme API für die Komposition asynchroner Operationen, die Verarbeitung von Ergebnissen ohne Blockierung, Verkettung von Aufrufen und Fehlerbehandlung bereitstellt. Es unterstützt funktionale Methoden wie thenApply, thenAccept, thenCompose und andere, was den Aufbau komplexer asynchroner Szenarien erleichtert.

Beispiel für die Verwendung von CompletableFuture:

CompletableFuture.supplyAsync(() -> {
    // Lange Operation
    return "Ergebnis";
}).thenApply(result -> {
    // Ergebnisverarbeitung
    return result.toUpperCase();
}).thenAccept(finalResult -> {
    System.out.println(finalResult);
});