【问题标题】:Java Multi Thread communictionJava 多线程通信
【发布时间】:2016-11-06 19:02:39
【问题描述】:

我正在学习 Java 中的多线程通信。我遇到了一个问题:

有四个线程 T1、T2、T3 和 T4。所有这些线程都在运行,有一个条件'C'。每当这四个线程中的任何一个先到达那里时,它都会等待另外三个线程。

例如,如果线程 T2 满足条件“C”,它将等待线程 T1、T3 和 T4,除非它们也满足条件“C”。然后所有线程将重新开始。

如果您需要更多详细信息,请告诉我。感谢您的帮助。谢谢。

【问题讨论】:

  • 你的问题是什么?
  • 澄清:当我说他们将重新开始时。这意味着他们将继续执行。
  • 我不理解对此投反对票。我的问题有什么问题吗?
  • 你的问题是什么?

标签: java multithreading


【解决方案1】:

CyclicBarrier 做你想做的事。只需用线程数初始化它,然后在每个线程的集合点调用await()

【讨论】:

  • 我现在无法投票。不过谢谢你的建议。
【解决方案2】:

您可以使用 threadSafe 对象来共享信息,例如 ConcurrentHashMap。或者您可以使用一个简单的静态数组来共享,有很多方法可以做到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    相关资源
    最近更新 更多