CountDownLatch 计数器?倒计数器?
- new CountDownLatch(5) 可以创建一个指定大小的计数器
- await() 计数器至0之前,会阻塞所有线程,除非线程被中断
- 调用 countDown()一次计数器将减1
public class CountDownLatchDemo implements Runnable{
static CountDownLatch countdown=new CountDownLatch(5);
@Override
public void run() {
try {
Thread.sleep(1000);
System.out.println(Thread.currentThread().getName()+": 准备就绪");
countdown.countDown();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws InterruptedException {
CountDownLatchDemo demo = new CountDownLatchDemo();
for (int i = 0; i < 5; i++) {
new Thread(demo).start();
}
countdown.await();
System.out.println("Boom");
}
}