Что произойдет, когда CompletableFuture не завершится? Стоит ли утечка памяти? или, что еще хуже, он использует поток из пула потоков?Что происходит, когда CompletedFuture никогда не заканчивается?
Если это произойдет, что мы можем сделать, чтобы очистить эти незавершенные фьючерсы?
Чтобы уточнить, допустим, что у меня есть функция, подобная следующей, может ли это вызвать утечку или уничтожить поток в пуле во время выполнения задачи?
public void foo()
{
CompletableFuture.supplyAsync(this::functionNeverComplete, pool)
.whenComplete((r,e) -> logger.info("done {}",r,e));
}
Почему он не заполняется? – shmosel
Я не понимаю ваше замешательство. «CompletableFuture» не связан ни с какими потоками. Он ведет себя как любой другой объект. Он получит GC'ed, если его считают недостижимым. –
Что говорит javadoc 'supplyAsync'? –