如何获得任何已完成的可赎回对象的结果



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

ThreadPoolExecutor 听起来像我想要的,但这只能适用于可运行列表,我需要能够从线程中获取结果。

就我而言,顺序无关紧要。我想不断将可调用对象添加到某种队列中,然后在这些结果进入时对这些结果执行一些操作。这能做到吗?

我不是 100% 确定我理解您的要求,但我认为您可以使用 ExecutorCompletionService.

此类包装一个执行器,您可以使用submit来添加任务,并takepoll来检索下一个已完成的任务。如果尚未完成任务,take将阻止,直到一个任务完成。

相关内容

  • 没有找到相关文章

最新更新