好了,废话不多说;
首先什么是CountDownLatch :
代码语言:javascript复制CountDownLatch,一个线程同步管理类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
其本身带有的主要方法:
代码语言:javascript复制public CountDownLatch(int count);
public void await() throws InterruptedException
public void countDown();
首先第一个:
代码语言:javascript复制public CountDownLatch(int count);
这个方法的意思是要管理几个线程,并得到一个CountDownLatch实例,其参数 count 的数量就决定着要开启几个线程。
第二个:
代码语言:javascript复制 public void await() throws InterruptedException
这个方法看名字大家就可以猜的出来,是等待方法, 当执行此方法时, 那么其余线程和都必须等待countDown的数量变0,然后开始执行。
代码语言:javascript复制public void countDown();
这个方法主要是减去线程数量, 举个栗子, 你在此线程使用了await,那什么时候取消呢?如果取消(释放)则用到了这个方法,这个方法执行一次,那么总数(构造方法中的参数count)就会减去1, 直到构造参数是0时,该管理器结束,不再闭锁其他线程。 latch.countDown(); 建议放在 finally里执行,不然小心造成死锁。
你以为会有示例代码?
不,没有!
再见!