CountDownLatch唤醒主线程
时间: 2023-11-01 16:56:03 浏览: 36
CountDownLatch可以在主线程等待某些前提条件满足后再继续执行,其通过计数器的递减来实现线程的阻塞和唤醒。当计数器的值递减为0时,CountDownLatch会唤醒主线程。
具体使用CountDownLatch唤醒主线程的步骤如下:
1. 初始化一个CountDownLatch对象,设置计数器的初始值。
2. 在主线程中调用CountDownLatch的await()方法,以阻塞主线程,直到计数器递减为0。
3. 其他线程在满足某些条件后,调用CountDownLatch的countDown()方法,递减计数器的值。
4. 当计数器递减为0时,CountDownLatch会唤醒主线程,使其继续执行。
需要注意的是,CountDownLatch在计数器递减到0之前,主线程会一直处于阻塞状态。因此,需要确保其他线程在递减计数器之前能够满足计数器所代表的前提条件。
下面是一个示例代码:
```
// 初始化CountDownLatch对象,设置计数器的初始值为1
CountDownLatch latch = new CountDownLatch(1);
// 在主线程中阻塞等待计数器递减到0
try {
latch.await();
// 主线程被唤醒后,继续执行其他操作
// ...
} catch (InterruptedException e) {
e.printStackTrace();
}
// 在其他线程中满足某些条件后,递减计数器的值
latch.countDown();
```
通过以上步骤,可以实现CountDownLatch唤醒主线程的功能。