Вызов метода get() у объекта CompletableFuture является блокирующей операцией. Это значит, что если результат ещё не готов, текущий поток приостанавливается и ждёт, пока вычисление не завершится и результат не станет доступен.
Является ли вызов метода get у объекта CompletableFuture операцией, которая блокирует поток или же работает без блокировки?
Вызов метода get() у объекта CompletableFuture является блокирующей операцией.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Вызов метода get() у объекта CompletableFuture является блокирующей операцией. Это значит, что если результат ещё не готов, текущий поток приостанавливается и ждёт, пока вычисление не завершится и результат не станет доступен.
Если результат уже готов, get() вернёт его сразу без блокировки.
Для неблокирующего получения результата можно использовать методы thenApply, thenAccept и другие, которые позволяют задать действия, выполняющиеся после завершения асинхронной операции, без блокировки текущего потока.