系列文章目录
第二章 CountDownLatch和Semaphone的应用
第一章 Java线程池技术应用

前言
Java JUI之并发编程,CountDownLatch和Semaphone的应用
1、CountDownLatch
CountDownLatch是一个同步工具类,它通过一个计数器来实现的,初始值为线程的数量。每当一个线程完成了自己的任务,计数器的值就相应得减1。当计数器到达0时,表示所有的线程都已执行完毕,然后在等待的线程就可以恢复执行任务。
CountDownLatch(int count):count为计数器的初始值(一般需要多少个线程执行,count就设为几)。
- CountDownLatch(int count):count为计数器的初始值(一般需要多少个线程执行,count就设为几)。
- countDown(): 每调用一次计数器值-1,直到count被减为0,代表所有线程全部执行完毕。
- getCount():获取当前计数器的值。
- await(): 等待计数器变为0,即等待所有异步线程执行完毕。
- boolean await(long timeout, TimeUnit unit):
此方法与await()区别:
①此方法至多会等待指定的时间,超时后会自动唤醒,若 timeout 小于等于零,则不会等待
②boolean 类型返回值:若计数器变为零了,则返回 true;若指定的等待时间过去了,则返回 false
本文主要探讨Java并发编程中的CountDownLatch和Semaphore工具类。CountDownLatch用于等待所有线程执行完毕,Semaphore则用于控制同时访问特定资源的线程数量。文中列举了各自的应用场景及实例代码,帮助理解其工作原理。
订阅专栏 解锁全文
6733





