Ja coś czytałem o CompletableFuture.
W tej chwili rozumiem, że CompletableFuture różni się od Future w tym sensie, że zapewnia środki do łączenia kontraktów terminowych w łańcuch, aby korzystać z oddzwanianie do obróbki wyników w Przyszłości, w rzeczywistości nie blokuje kod.
Jednakże, nie jest to pełna() metoda, którą trudno mi zrozumieć. Wiem tylko, że to pozwala nam zakończyć przyszłość ręcznie, ale jak to użyć? Najbardziej typowe przykłady, które znalazłem do tej metody, to kiedy wykonujemy jakąś asynchroniczne zadanie, na przykład, możemy natychmiast zwrócić wiersz. Ale jaki w tym sens, jeśli zwrócona wartość nie odzwierciedla rzeczywisty wynik? Jeśli chcemy coś zrobić asynchronicznie, dlaczego po prostu nie użyć zwykłych przyszłość zamiast tego? Jedyne zastosowanie, które mogę wymyślić, to gdy chcemy warunkowo anulować bieżące przyszłość. Ale myślę, że nie dostrzegam tu pewne ważne słowa chwile.