java countdownlatch使用
时间: 2024-08-14 09:06:40 浏览: 48
CountDownLatch是一种同步工具,它允许一个或多个线程等待其他线程完成特定任务后再继续执行。在Java并发编程中,CountDownLatch的主要作用是控制一组线程的执行顺序,特别是当主线程需要等待所有子线程处理完某个任务后才能继续。
以下是CountDownLatch的基本使用步骤:
1. 初始化CountDownLatch:创建一个CountDownLatch实例,并指定计数器的初始值。这个值表示有多少线程需要到达终点。
```java
int count = 5; // 假设有5个线程
CountDownLatch latch = new CountDownLatch(count);
```
2. 线程执行操作:每个线程在开始执行任务前,会调用`await()`方法,这会使当前线程阻塞,直到计数器减少到0。
```java
new Thread(() -> {
// 执行任务...
latch.countDown(); // 当任务完成后,减小计数器
}).start();
```
3. 主线程等待:主线程或其他依赖于计数器的线程,在所有子线程完成之前不会执行。当计数器变为0,调用`await()`的线程会被唤醒。
```java
try {
latch.await(); // 主线程等待所有子线程完成
} catch (InterruptedException e) {
e.printStackTrace();
}
```
4. 最终结束:最后一个完成任务的线程调用`countDown()`,使得计数器归零,此时主线程和其他等待线程可以继续执行。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)