CountDownLatch是什么?
CountDownLatch 位于java.util.concurrent包下,是JDK5.0的新特性,根据包名便可知,它是用于处理多线程并发的工具类。
CountDownLatch能干什么?
CountDownLatch 能够使一个线程处于等待状态,直到它期望的其他线程达到预期,再恢复运行状态。
CountDownLatch的运行原理
CountDownLatch 是通过一个计数器来实现的,计数器的初始值为线程数。
每当一个线程完成任务后,计数器的值就会减1。当计数器的值为0时,它表示所线程已经完成任务,然后在闭锁上等待线程就恢复运行状态。
|
|
CountDownLatch主要API
构造函数
12//Constructs a CountDownLatch initialized with the given count.public void CountDownLatch(int count) {…}让线程处于等待状态的函数
1CountDownLatch.await()让线程恢复执行状态的函数(cnt=0时,线程恢复运行状态)
1CountDownLatch.countDown()
示例
主线程启动三个子线程,完成各自的验证工作后,主线程再继续运行,使用CountDownLatch进行实现。
主程序入口
|
|
运行结果
|
|
代码地址
https://github.com/atopom/java_familiar_strange/tree/master/Code/CountDownLatchDemo