Java多线程通信



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

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

例如,如果线程T2达到条件'C',它将等待线程T1, T3和T4,除非它们也达到条件'C'。然后所有线程将重新启动。

如果你需要更多的细节,请告诉我,任何帮助都是感激的。谢谢。

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

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

最新更新