繁体   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