首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA线程并发

JAVA线程并发
EN

Stack Overflow用户
提问于 2013-12-18 23:54:46
回答 2查看 100关注 0票数 0

我正在使用ExecutorService启动多个线程。

  • 螺纹A
  • 螺纹B
  • 线程C和
  • 螺纹D
  • ……
  • ……螺纹N

所有线程同时启动。我使用ConcurrentHashMap来存储线程A,线程B,线程C的结果,这些结果可以在未来的线程D中使用。

现在,当线程D正在寻找线程A的输出时,线程A可能仍在执行中。

这适用于可能依赖线程D输出的线程C。

或线程N,它可能依赖于任何线程的输出,如线程N-1,或线程N- 4等。

处理这种情况或让线程A等待其他线程准备好输出的最佳方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2013-12-18 23:58:07

我建议有三个任务产生结果,这些任务被排到同一个执行器或另一个执行器中。这样,线程D只在有事情要做的时候才能工作。

一个更好的选择可能是线程A立即处理自己的工作(线程B&C也是如此),在这种情况下,您不需要线程D。

票数 1
EN

Stack Overflow用户

发布于 2013-12-18 23:59:00

听起来你想用联接。启动后连接线程将有效地使您的程序以一种小插曲的方式运行。线程A运行,然后B,然后C然后D将寻找前3个线程的结果,一旦线程C已经完成。

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

https://stackoverflow.com/questions/20670969

复制
相关文章

相似问题

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