【JAVA并发编程专题】CountDownLatch的理解与使用
2023-09-11 14:21:23 时间
一、简介
CountDownLatch提供了和join一样的功能,可以允许一个线程等待其它线程操作完成之后再进行操作。
CountDownLatch在使用的时候需要接受一个int类型的参数作为计数器,需要等待的线程调用await方法就会进入等待状态,被等待的线程每一次调用countDown方法时,计数器就会减1,直至为0的时候,等待线程就能继续执行了。
需要注意的是,计数器必须大于等于0,如果等于0的话,等待线程在调用await的时候并不会进入等待状态。
二、使用实例
public static void main(String[] args) throws InterruptedException {
CountDownLatch countDownLatch = new CountDownLatch(2);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
log.info("子线程执行开始...");
countDownLatch.countDown();
log.info("子线程休眠...");
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
log.info("子线程休眠结束");
countDownLatch.countDown();
}
});
thread.start();
log.info("主线程执行完了,等待子线程...");
countDownLatch.await();
log.info("主线程等待子线程结束");
}
相关文章
- 深入java面向对象五:Java的内存管理
- 《Java 7并发编程实战手册》第六章并发集合
- 【并发编程】Java并发编程传送门
- 【JAVA】java中split以"." 、""、“|”分隔字符串
- [Linux] Install java and add JAVA_HOME, PATH
- linux系统部署Java程序获取ip时报Caused by: java.net.UnknownHostException: XXXXXXXXXX: XXXXXXXXXX: Name or service not known
- java并发编程-线程安全1:servlet访问统计
- 一文详解java线程池 详解Java线程池的七个参数 详解池化技术 java如何选择核心线程数 详解Java线程池的拒绝策略
- Java并发编程:Callable、Future和FutureTask
- Java并发编程:并发容器之CopyOnWriteArrayList
- Java并发编程:Callable、Future和FutureTask
- Java并发编程与高并发之线程安全性(原子性、可见性、有序性)
- Java并发编程中的阻塞和中断
- 《Java并发编程的艺术》精要整理原创 Django Java工程师成长日记