java - ExecutorService.invokeAll 不支持可运行任务的收集

标签 java executorservice java.util.concurrent

想通过 ExecutorService 的 invokeAll(..) 方法运行 Runnable 任务的集合. 但目前还不支持(仅支持收集可调用任务)

有什么具体原因吗?做类似事情的替代方案是什么。

最佳答案

Runnable task = new Runnable() { 
     public void run() {

     }
};

Callable<Object> c = Executors.callable(task);

刚刚发现,Executors 提供了将Runnable 任务转换为Callable 任务的实用方法。这解释了为什么我们没有重载 invokeAll 也接受 Runnable 任务。

关于java - ExecutorService.invokeAll 不支持可运行任务的收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24081417/

相关文章:

java - 事务未回滚

java - 使用 Java 中的合并算法将两个值合并为单个值

java - 下面的任务会捕获异常吗?

java - 抛出 InterruptedException 时不会清除线程中断状态

java - ReentrantReadWriteLock挂起

java - 如何在线程安全环境中定义静态Arraylist

java多态和继承问题

java - LSP 对像 Ruby 这样的动态类型语言也有意义吗?

java - 如何在不使用ExecutorService的情况下实现固定线程池

java - 获取定时任务的结果