[英]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.