ExecutorCompletionService 缺少 invokeAll 接口

ExecutorCompletionService missing invokeAll interface

所以阅读 ExecutorCompletionService 的 javadoc,看起来它使用了具有 invokeAll() 方法的线程池执行器,但是 ExecutorCompletionService 只提供了 submit() 方法,因此不允许我们如果任务是通过 ExecutorCompletionService 提交的,则调用 invokeAll 并立即触发所有任务。

它不应该支持 invokeAll() 这样我就可以准备任务列表并调用

ExecutorCompletionService.invokeAll(listOfTasks);

而不是调用

ExecutorCompletionService.submit(task);

在 for 循环中?

没有。 ExecutorCompletionServiceCompletionService,而不是 ExecutorServiceCompletionService 的全部意义在于提供一种通过轮询检查已完成任务的机制。

invokeAll 阻塞,直到所有提交的任务完成。

这些是相反的特征。