Java中CountDownLatch的生活举例
时间: 2024-01-17 08:19:03 浏览: 78
CountDownLatch Demo
CountDownLatch是Java中的一个并发工具类,它可以用于控制多个线程的并发执行流程。它的工作原理是,一个线程等待其他线程完成某个任务后再继续执行。
下面是一个生活中的例子来说明CountDownLatch的用法:
假设有一个家庭聚餐,家庭成员需要等待所有人都到齐后才能开始吃饭。这个场景可以使用CountDownLatch来实现。
首先,我们创建一个CountDownLatch对象,设置初始计数器为家庭成员的人数减1(因为主线程也要等待)。
```java
CountDownLatch latch = new CountDownLatch(familyMembers - 1);
```
然后,每个家庭成员到达聚餐地点后,调用CountDownLatch的countDown()方法来减少计数器的值。
```java
latch.countDown();
```
最后,主线程调用CountDownLatch的await()方法来等待计数器变为0,表示所有家庭成员都到齐了。
```java
latch.await();
```
当计数器变为0时,主线程就可以继续执行后面的代码,即开始吃饭。
这样,通过CountDownLatch,我们可以实现多个线程的并发流程控制,确保某个任务在其他线程完成后再执行。
阅读全文