latch.countDown();是干什么用的
时间: 2024-03-01 14:49:12 浏览: 119
CountDownLatch的使用
在Java中,CountDownLatch是一个同步工具类,它可以让一个或多个线程等待其他线程完成操作后才能继续执行。CountDownLatch提供了两个主要方法:countDown()和await()。
当一个线程完成了需要等待的操作后,可以调用countDown()方法将计数器减1。而其他线程可以调用await()方法等待计数器变为0。当计数器变为0时,所有等待的线程都会被唤醒,可以继续执行后续操作。
具体来说,当你调用latch.countDown()方法时,它会将CountDownLatch对象的计数器减1。如果此时计数器变为0,那么所有在该对象上调用await()方法而被挂起的线程都会被唤醒,可以继续执行后续操作。
CountDownLatch的常见用途之一是协调多个线程的执行。例如,你可以创建一个CountDownLatch对象,将计数器初始化为需要等待的线程数,然后让这些线程执行任务。当所有线程都完成了任务后,它们都会调用countDown()方法,将计数器减1。而在主线程中,可以调用await()方法等待计数器变为0,然后继续执行后续操作,例如汇总各个线程的结果。
需要注意的是,CountDownLatch的计数器一旦减为0,就不能再重新设置。如果需要重复使用CountDownLatch,可以考虑使用CyclicBarrier类。
阅读全文