java - 如何并行运行一组任务并等到所有任务都用 java concurrency utils 完成?

标签 java concurrency java.util.concurrent

我有 N 个任务,我希望它们与 N 个线程并行处理。 我想等到所有任务都完成后,存储结果,然后运行下 N 个任务(以此类推循环)。

java util 并发的哪些抽象可以帮助我?

我查看了 ExecutorService.invokeAll(),但它返回了一个 futures 列表,所以我应该在一个循环中迭代所有这些,直到所有这些都完成。

我想,应该有更直接的方法来计算一组任务。

最佳答案

ExecutorService.invokeAll() 可能是最直接的实现方式。

您无需遍历其中任何一个以等待完成。 invokeAll 仅在所有操作完成后返回。因此,当您可以迭代它们时,get 将立即返回。

关于java - 如何并行运行一组任务并等到所有任务都用 java concurrency utils 完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17238032/

相关文章:

java - 了解哈希集

java - 即使 xpath 相同,如何识别 Selenium 中的元素

iphone - 使用多个 CoreData NSManagedObjectContext 时是否需要实现 NSManagedObjectContext 通知?

java - Future.cancel(true) 下发生了什么

java - HornetQ 重新连接尝试无法与 DefaultMessageListenerContainer 一起使用

java - 为什么我的代码修改了错误的数组?

java - 如何启动不阻塞Java主线程的后台线程?

PHP - 数据访问并发测试

java - java并发编程中,读取值时是否需要使用synchronized?

java - Java 中的同步列表/映射(如果只有一个线程正在写入)