同步工具类CountDownLatch
CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如:我们再连接zk时,会遇到如下问题。
此时,我们需要等待zk连接成功再开始继续执行main方法,所以需阻塞主线程。此时,就用到CountDownLatch工具类。
先介绍下 CountDownLatch:
某一线程在开始运行前等待n个线程执行完毕。将CountDownLatch的计数器初始化为n new CountDownLatch(n) ,每当一个任务线程执行完毕,就将计数器减1 countdownlatch.countDown(),当计数器的值变为0时,在CountDownLatch上 await() 的线程就会被唤醒。
以上代码可变为:
当countDown为0时,await的方法会被唤醒。