简介
CountDownLatch是一个同步工具类,它允许一个线程或多个线程一直在等待,直到其他线程执行完后再执行。
实现原理
- 通过给定count来初始化,所有调用了await()的线程会一直阻塞,直到通过countDown()方法将count减为0为止或者await(long timeout, TimeUnit unit)超时。
- count没法被重置,如果需要重置可以考虑使用CyclicBarrier。
举例:
一个CountDownLatch通过一个值为1的count被初始化,来作为一个开/关的门或门闩:所有调用了await()的线程都会在门前等待,直到门被一个线程通过调用countDown()打开。
网友评论