This class synchronizes threads. All threads that call await( ) block until the countDown( ) method is invoked a specified number of times. The required number of calls is specified when the CountDownLatch is created. Once countDown( ) has been called the required number of times, all threads blocked in await( ) are allowed to resume, and any subsequent calls to await( ) do not block. getCount( ) returns the number of calls to countDown( ) that must still be made before the threads blocked in await( ) can resume. Note that there is no way to reset the count. Once a CountDownLatch has "latched," it remains in that state forever. Create a new CountDownLatch if you need to synchronize another group of threads. Contrast this class with CyclicBarrier . public class CountDownLatch { // Public Constructors public CountDownLatch (int count ); // Public Instance Methods public void await ( ) throws InterruptedException; public boolean await (long timeout , TimeUnit unit ) throws InterruptedException; public void countDown ( ); public long getCount ( ); // Public Methods Overriding Object public String toString ( ); } |