Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获得任何已完成的可调用项的结果?_Java_Multithreading_Callable - Fatal编程技术网

Java 如何获得任何已完成的可调用项的结果?

Java 如何获得任何已完成的可调用项的结果?,java,multithreading,callable,Java,Multithreading,Callable,有没有办法创建一个不断更新的线程池,并检查是否有任何提交的callables已完成并获得该值?ExcutorService允许您提交一组线程,然后稍后获得可调用的结果,但是如果您不知道将提交多少个可调用项,或者希望连续提交可调用项,该怎么办 ThreadPoolExecutor听起来像我想要的,但这只能在可运行列表上工作,我需要能够从线程中获得结果 就我而言,秩序并不重要。我希望不断地将可调用项添加到某种队列中,然后在这些结果出现时对其进行处理。这能做到吗?我不能100%肯定我理解您的要求,但我

有没有办法创建一个不断更新的线程池,并检查是否有任何提交的callables已完成并获得该值?ExcutorService允许您提交一组线程,然后稍后获得可调用的结果,但是如果您不知道将提交多少个可调用项,或者希望连续提交可调用项,该怎么办

ThreadPoolExecutor听起来像我想要的,但这只能在可运行列表上工作,我需要能够从线程中获得结果


就我而言,秩序并不重要。我希望不断地将可调用项添加到某种队列中,然后在这些结果出现时对其进行处理。这能做到吗?

我不能100%肯定我理解您的要求,但我认为您可以使用一个


此类包装执行者,您可以使用
submit
添加任务,使用
take
poll
检索下一个已完成的任务。如果还没有完成任务,
take
将一直阻止,直到一个任务完成。

谢谢,这看起来像我要找的。