CompletableFuture未完成時會發生什麼?它會花費內存泄漏嗎?或者更糟的是它是否用完了線程池中的線程?CompletableFuture未完成時會發生什麼?
如果確實發生了什麼,我們可以做些什麼來清理這些未完成的未來?
澄清讓我說我有一個像下面這樣的函數,這會導致任何泄漏或在執行任務時消耗池中的線程嗎?
public void foo()
{
CompletableFuture.supplyAsync(this::functionNeverComplete, pool)
.whenComplete((r,e) -> logger.info("done {}",r,e));
}
爲什麼它沒有完成? – shmosel
我不明白你的困惑。 'CompletableFuture'與任何線程無關。它的行爲與其他任何對象一樣。當它被認爲無法訪問時,它會被GC'ed。 –
'supplyAsync'的javadoc說什麼? –