ConuntDownLatch详解
允许一个或多个线程等待,直到其他线程执行完后再执行.
原理
- 通过一个计数器来实现的.
- 计数器的初始化值为线程的数量.
- 每个线程在完成自己的任务后,计数器的值应当减一.
- 当计数器到达0时,表示所有线程完成任务,等待的线程则可以恢复执行任务.
闭锁(Latch)
延迟线程的进度直到线程到达某个终点状态.
闭锁生效时,所有线程被阻塞.
闭锁失效时,所有线程恢复运行.
闭锁是一次性的,闭锁失效后其状态不能改变.
核心方法
countDown()
其他线程在完成各自的任务后,调用该方法使得count值减一.
await()
等待的线程调用此方法阻塞该线程,直到count减为一时恢复自己的任务.