CountDownLatch
一种同步辅助工具,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。CountDownLatch是用给定的计数初始化的。由于调用了countDown方法,await方法会阻塞,直到当前计数为零,在此之后,所有等待的线程都会被释放,后续的await调用会立即返回。这是一种一次性现象——计数不能重置。如果需要重置计数的版本,可以考虑使用CyclicBarrier。CountDownLatch是一个通用的同步工具。
/**锁存器计数-1
当前计数-1=0(新计数==0),则等待线程全部被启用,执行下一步调度。
当前计数>0,计数-1
当前计数=0,什么也不会发生
**/
public void countDown()
/**使当前线程等待,直到锁存器计数 == 0,除非线程被中断或超时。**/
boolean await(long timeout, TimeUnit unit)
/**使当前线程等待,直到锁存器技术 == 0,除非线程被中断**/
boolean await()
/**返回当前还需等待的线程计数**/
public long getCount()