Я только что прочитал the documentation около CompletableFuture::runAsync
и был довольно смущен объяснением. Вот что там написано:Понимание CompletableFuture :: runAsync
Возвращает новый
CompletableFuture
, который асинхронно завершено к задаче, работающей в данном исполнителе после того, как работает данное действие.
Насколько я понимаю, CompletableFuture
выглядит Future
с, что он может «зарегистрировать» своего рода обратных вызовов и вызывать их неявно когда данное действие закончено.
Принимая это во внимание, давайте рассмотрим следующий код:
ExecutorService threadsPool;
Runnable r;
//...
CompletableFuture.runAsync(r, threadsPool);
В этом коде мы зарегистрировать Runnable
будет выполняться асинхронно в данной ThreadPool
.
Но что это значит CompletableFuture
, который асинхронно завершается задачей. Как можно сделать задачу CompletableFuture
...? Это не имеет большого значения для меня.