我正在学习Java中的多线程通信。我遇到了一个问题:
有四个线程T1,T2,T3和T4。所有这些线程都在运行,条件为'C'。每当这四个线程中的任何一个首先到达那里时,它将等待另外三个线程。
例如,如果线程T2遇到条件“C”,它将等待线程T1,T3和T4,除非它们也达到条件“C”。然后所有线程将重新开始。
如果您需要更多详细信息,请告知我们。非常感谢您的帮助。感谢。
答案 0 :(得分:1)
CyclicBarrier
做你想要的。只需使用线程数初始化它,并在每个线程的会合点调用await()
。
答案 1 :(得分:0)
您可以使用threadSafe对象来共享信息,例如ConcurrentHashMap.Or您可以通过简单的静态数组进行共享,有很多方法可以做到这一点。