感觉join就可以解决问题啊,为什么要有CyclicBarrier和CountDownLatch
业精于勤,荒于嬉;行成于思,毁于随。
第一個. 用Thread.join只能部分的實作CountDownLatch的功能. 這個看看CountDownLatch的java doc就可以了. 不多說
第二個. Thread.join用了Object.wait/notify機制. java.lang.Thread.join(long millis) java doc裡寫道:
This implementation uses a loop of this.wait calls conditioned on this.isAlive. As a thread terminates the this.notifyAll method is invoked. It is recommended that applications not use wait, notify, 或 notifyAll on Thread instances.
Effective Java第二版裡說的很好, wait/nofify 和java.util.concurrent提供的功能比起來, 就好像並發彙編語言(concurrency assembly language) 一樣. 更難用而且也更容易出bug.
總結下: 從java1.5 有了並發包之後, 以前的 wait/notify/timer/synchorinized/同步容器 等等, 都應該盡可能的 用java 1.5並發包取代.
http://stackoverflow.com/questions/21808814/whats-the-difference-Between-cyclingbarrier-countdownlatch-and-join-in-java
第一個. 用Thread.join只能部分的實作CountDownLatch的功能. 這個看看CountDownLatch的java doc就可以了. 不多說
第二個. Thread.join用了Object.wait/notify機制. java.lang.Thread.join(long millis) java doc裡寫道:
Effective Java第二版裡說的很好, wait/nofify 和java.util.concurrent提供的功能比起來, 就好像並發彙編語言(concurrency assembly language) 一樣. 更難用而且也更容易出bug.
總結下: 從java1.5 有了並發包之後, 以前的 wait/notify/timer/synchorinized/同步容器 等等, 都應該盡可能的 用java 1.5並發包取代.
http://stackoverflow.com/questions/21808814/whats-the-difference-Between-cyclingbarrier-countdownlatch-and-join-in-java