CountDownLatch 并发模拟
时间: 2023-10-17 07:28:38 浏览: 75
CountDownLatch 是 Java 中的一个并发工具类,用于实现线程间的协调和控制。它的主要作用是让某个线程等待其他线程执行完毕之后再继续执行。
下面是一个使用 CountDownLatch 进行并发模拟的例子:
```java
import java.util.concurrent.CountDownLatch;
public class ConcurrencySimulation {
public static void main(String[] args) throws InterruptedException {
int threadCount = 5; // 线程数量
// 创建一个 CountDownLatch,初始计数为线程数量
CountDownLatch latch = new CountDownLatch(threadCount);
for (int i = 0; i < threadCount; i++) {
Thread thread = new Thread(new Worker(latch));
thread.start();
}
// 主线程等待所有子线程执行完毕
latch.await();
System.out.println("所有线程执行完毕");
}
static class Worker implements Runnable {
private final CountDownLatch latch;
public Worker(CountDownLatch latch) {
this.latch = latch;
}
@Override
public void run() {
try {
// 模拟线程执行耗时操作
Thread.sleep(1000);
System.out.println("线程执行完毕");
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
// 每个线程执行完毕后将计数器减一
latch.countDown();
}
}
}
}
```
这个例子创建了 5 个子线程,每个子线程执行耗时操作后将计数器减一。主线程调用 `latch.await()` 方法,等待所有子线程执行完毕后输出 "所有线程执行完毕"。通过使用 CountDownLatch,可以实现简单的并发模拟和线程间的协调控制。
阅读全文