CountDownLatch使用方式
时间: 2023-11-16 18:01:29 浏览: 115
CountDownLatch是Java中的一个同步工具类,它可以让一个或多个线程等待其他线程完成操作后再执行。CountDownLatch的使用方式如下:
1. 创建CountDownLatch对象,指定计数器的初始值,即需要等待的线程数。
2. 在需要等待的线程中调用CountDownLatch的await()方法,使线程进入等待状态。
3. 在其他线程完成操作后,调用CountDownLatch的countDown()方法,使计数器减1。
4. 当计数器减为0时,所有等待的线程都会被唤醒,继续执行。
下面是一个简单的示例代码:
```
import java.util.concurrent.CountDownLatch;
public class CountDownLatchDemo {
public static void main(String[] args) throws InterruptedException {
int threadCount = 5;
CountDownLatch countDownLatch = new CountDownLatch(threadCount);
for (int i = 0; i < threadCount; i++) {
new Thread(() -> {
// 线程执行操作
System.out.println(Thread.currentThread().getName() + " 执行操作");
// 操作完成后计数器减1
countDownLatch.countDown();
}).start();
}
// 等待所有线程执行完毕
countDownLatch.await();
System.out.println("所有线程执行完毕");
}
}
```
在上面的示例中,我们创建了一个CountDownLatch对象,并指定计数器的初始值为5。然后创建了5个线程,每个线程执行完操作后都会调用countDown()方法,使计数器减1。最后在主线程中调用await()方法,等待所有线程执行完毕。当计数器减为0时,所有线程都会被唤醒,主线程继续执行输出"所有线程执行完毕"。
阅读全文