Вопросы к Поиску с Алисой
Разница между Future и CompletionStage в CompletableFuture заключается в их функциях и возможностях.
Future — интерфейс, который служит результатом асинхронных вычислений. www.baeldung.com Он не содержит методов для объединения вычислений или обработки возможных ошибок. www.baeldung.com Некоторые методы интерфейса Future: можно дождаться результата будущего с или без таймаута, запросить статус будущего и т. д.. mincong.io
CompletionStage — интерфейс, который определяет контракт для шага асинхронных вычислений, который можно комбинировать с другими шагами. www.baeldung.com CompletionStage предлагает множество методов для упрощения работы с ответами, вычисленными в разных потоках и этапах. nuancesprog.ru Некоторые из наиболее распространённых методов интерфейса: thenApply() (аналогичная функции map() из потоков) и thenAccept() (аналогичная функции foreach). nuancesprog.ru
Таким образом, Future фокусируется на результате вычислений, а CompletionStage — на процессе работы с ответами и этапах выполнения задач.
Класс CompletableFuture одновременно реализует интерфейсы Future и CompletionStage, что позволяет ему одновременно представлять этап многоэтапных вычислений и их результат. aliakh.github.io