什么是CountDownLatch?
CountDownLatch是Java中的一个同步工具类,它可以让一个或多个线程等待其他线程完成操作后再执行。CountDownLatch的作用是允许一个或多个线程等待其他线程完成操作后再执行。
CountDownLatch有两个方法:
- countDown():每次调用该方法会将计数器减1。
- await():会阻塞当前线程,直到计数器的值为0。
CountDownLatch的注意事项
- CountDownLatch的计数器只能减少,不能增加。
- CountDownLatch的await()方法会阻塞当前线程,直到计数器的值为0。
- CountDownLatch的countDown()方法可以在任何地方调用,不一定要在await()方法之前。
真实的代码
代码语言:javascript复制 int threadCount = 10;
CountDownLatch latch = new CountDownLatch(threadCount);
for (int i = 0; i < 1000; i ) {
new Thread(()->{
System.out.println("我是线程:");
}).start();
latch.countDown();
}
try {
latch.await();
} catch (InterruptedException e) {
// await会抛出异常
e.printStackTrace();
}
System.out.println("所有线程执行完毕 " integerThreadLocal.get());