Java Callable:调用get()之前线程发生了什么

shadow_heart

更精确地讲:如果我通过submit(Callable<T> task)ExecutorService(使用自身构造的Executors.newCachedThreadPool()调用方法来启动异步计算,则可以等待计算完成并通过调用检索结果Future.get()

我的问题是:如果计算已经完成,在我打电话之前会发生什么get()在检索结果之前,线程是否被阻塞?是否存储结果并将线程分配给另一个任务?完全不同吗?

预先感谢您的回答

安东尼奥

不,线程没有被阻止,它被返回到池中。通常,get()调用线程依赖于worker,而不是相反。因此,如果有结果,则将其返回;如果没有,请等到可用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java的@OverridingMethodMustCallSuper发生了什么?

java中同一个线程调用start()方法两次,有时执行run()方法两次;内部究竟发生了什么?

超时联接调用后Java线程会发生什么

这段Java代码中发生了什么?

Java Media Components发生了什么?

(char) (i + 'a') JAVA:这里发生了什么?

在Java继承后发生了什么保护的成员?

Java(特别是语言)发生了什么?

试图了解我的Java类发生了什么

这个Java基准测试中发生了什么?

在Java中传递对象时真正发生了什么?

java.util.stream.Streamable发生了什么?

Java GC发生了什么?PermGen空间正在填满?

Xenial 16.04中的tzdata-java发生了什么?

为什么在Java中调用setTimeout函数之前,我的值会发生变化?

如果我使用JNI从C的多个线程中调用Java函数,会发生什么情况?

如果我们在Java多线程中的executorService执行调用中传递线程,会发生什么情况

Java内存模型发生-在保证线程池交互之前

Java将数据与当前线程关联

Java 5中的HashMap在Java 7中发生了什么变化

Java发生在关系调用和等待之前

Java FutureTask-对get()的多线程调用

命令行Java:错误:发生了JNI错误/“主”线程java.lang.NoClassDefFoundError中的异常

Java线程设置为null时会发生什么?

Java:从同步块启动新线程时会发生什么?

Java FileInputStream提供了奇怪的输出。有人可以解释发生了什么

Java二进制兼容性发生了什么?

swing实验室或swingx-ws发生了什么?Java的JXMapKit

不知道发生了什么-没有错误(Java的新手)