簡體   English   中英

Java Callable:調用get()之前線程會發生什么

[英]Java Callable : What happens to the thread before get() is called

更確切地說:如果我通過在ExecutorService (它自己用Executors.newCachedThreadPool()構造submit(Callable<T> task)上調用submit(Callable<T> task)方法來啟動異步計算,我可以等待計算完成並通過調用Future.get()來檢索結果。 Future.get()

我的問題是:如果計算已經完成,那么在調用get()之前會發生什么? 在檢索結果之前,線程是否被阻塞? 是否存儲結果並將線程分配給另一個任務? 完全不同的東西?

在此先感謝您的答案

不,Thread沒有被阻塞,它被返回到池中。 通常, get()調用線程依賴於worker,而不是相反。 因此,如果有結果,則返回,如果沒有,請等待它可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM