java CountDownLatch
时间: 2023-10-17 15:34:20 浏览: 89
java利用CountDownLatch实现并行计算
`CountDownLatch` 是 Java 中的一个并发工具类,用于实现线程之间的等待和协调。它通常用于一个或多个线程等待其他线程完成某项操作后再继续执行。
`CountDownLatch` 的工作原理是通过一个计数器来实现的。创建 `CountDownLatch` 实例时需要指定计数器的初始值,该值表示需要等待的线程数量。当一个线程完成了某个操作后,可以调用 `countDown()` 方法将计数器减一。其他线程可以通过调用 `await()` 方法来等待计数器达到零,一旦计数器变为零,所有等待的线程将被唤醒,继续执行。
下面是 `CountDownLatch` 的基本用法示例:
```java
import java.util.concurrent.CountDownLatch;
public class Example {
public static void main(String[] args) throws InterruptedException {
int threadCount = 5;
CountDownLatch latch = new CountDownLatch(threadCount);
for (int i = 0; i < threadCount; i++) {
Thread thread = new Thread(() -> {
// 线程执行某个操作
// ...
// 操作完成后调用 countDown()
latch.countDown();
});
thread.start();
}
// 等待所有线程完成操作
latch.await();
// 所有线程完成后继续执行
System.out.println("All threads have finished their operations.");
}
}
```
在上面的示例中,创建了一个包含 5 个线程的 `CountDownLatch` 对象。每个线程执行某个操作后调用 `countDown()` 方法,然后主线程调用 `await()` 方法等待所有线程完成。一旦计数器变为零,主线程继续执行并输出提示信息。
希望这个简单的示例能帮助你了解 `CountDownLatch` 的用法。如果有任何疑问,请随时提出。
阅读全文