Sobes.tech
Middle

Do czego służą klasy Future i CompletableFuture w Java?

sobes.tech AI

Odpowiedź od AI

Klasy Future i CompletableFuture w Javie są przeznaczone do pracy z wynikami obliczeń asynchronicznych.

  • Future reprezentuje wynik, który będzie dostępny w przyszłości. Za pomocą Future można sprawdzić, czy obliczenie zostało zakończone, uzyskać wynik (metoda get blokuje wątek, jeśli wynik jeszcze nie jest gotowy) lub anulować zadanie.

  • CompletableFuture rozszerza możliwości Future, zapewniając wygodne API do komponowania operacji asynchronicznych, obsługi wyników bez blokowania, łańcuchowania wywołań i obsługi wyjątków. Obsługuje metody funkcyjne takie jak thenApply, thenAccept, thenCompose i inne, co ułatwia tworzenie złożonych scenariuszy asynchronicznych.

Przykład użycia CompletableFuture:

CompletableFuture.supplyAsync(() -> {
    // Długa operacja
    return "Wynik";
}).thenApply(result -> {
    // Przetwarzanie wyniku
    return result.toUpperCase();
}).thenAccept(finalResult -> {
    System.out.println(finalResult);
});