title: Java concurrency: Countdown latch vs Cyclic barrier
body: <p>I was reading through the <a href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/package-summary.html" rel="noreferrer">java.util.concurrent API</a>, and found that  </p>
  
  <ul>
  <li><code>CountDownLatch</code>: A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes.</li>
  <li><code>CyclicBarrier</code>: A synchronization aid that allows a set of threads to all wait for each other to reach a common barrier point.  </li>
  </ul>
  
  <p>To me both seems equal, but I am sure there is much more to it.  </p>
  
  <p>For example, in <code>CoundownLatch, the countdown value could not be reset, that can happen in the case of CyclicBarrier</code>.   </p>
  
  <p>Is there any other difference between the two?<br>
  What are the <code>use cases</code> where someone would want to reset the value of countdown?</p>