首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java方法中执行并行任务

在java方法中执行并行任务
EN

Stack Overflow用户
提问于 2017-08-04 13:25:26
回答 1查看 361关注 0票数 2

我对java中的并行编程非常陌生。我编写了两个方法,每个方法并行地操作一组数据。方法A必须在方法B开始之前完成。我想知道执行并行任务的方法何时终止。是:

  • 什么时候所有的任务都完成了?或
  • 在提交所有任务以供执行之后。

NB:,我用java visualVM监视了线程,我意识到线程在状态监视和等待中花费了大部分时间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-05 09:07:37

您已经用executorservice标记了它,所以我假设您使用的是ExecutorService。答案取决于您的方法到底是做什么的。

如果您的方法只是在它们各自的并行任务上调用ExecutorService.submit()ExecutorService.execute(),那么一旦提交了所有任务,它们就会退出;当方法退出时,并行任务可能仍然在执行。

如果希望等待与方法关联的所有任务的完成,首先为每个任务调用ExecutorService.submit(),存储返回的Futures。然后,一旦提交了所有任务,请在每个Future.get()上调用Futures。在关联任务完成之前,Future.get()不会返回,因此,一旦所有对Future.get()的调用都返回,所有任务都已经完成,您可以退出该方法并继续使用下一个方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45508083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档