CompletableFuture未完成时会发生什么?它会花费内存泄漏吗?或者更糟的是它是否用完了线程池中的线程?CompletableFuture未完成时会发生什么?
如果确实发生了什么,我们可以做些什么来清理这些未完成的未来?
澄清让我说我有一个像下面这样的函数,这会导致任何泄漏或在执行任务时消耗池中的线程吗?
public void foo()
{
CompletableFuture.supplyAsync(this::functionNeverComplete, pool)
.whenComplete((r,e) -> logger.info("done {}",r,e));
}
为什么它没有完成? – shmosel
我不明白你的困惑。 'CompletableFuture'与任何线程无关。它的行为与其他任何对象一样。当它被认为无法访问时,它会被GC'ed。 –
'supplyAsync'的javadoc说什么? –