目录
CountDownLatch 倒计时计数器,减法计数器
演示代码
:::info
等待一个或多个线程执行完成
CountDownLatch countDownLatch = new CountDownLatch(7); 等待7个线程执行完成,数量为7
countDownLatch.countDown(); 数量减一
countDownLatch.await(); 等待计数器归零,然后再向下执行,计数器没归零时,一直等待
:::
CyclicBarrier 加法计数器
演示代码
:::info
cyclicBarrier.await()等待的次数,达到计数器数量时,计数器对应的线程才执行
CyclicBarrier cyclicBarrier = new CyclicBarrier(int, Runnable);
int 计数器数量,如:数量到7时,线程可以执行,不到之前,线程一直等待
Runnable 要执行的线程
cyclicBarrier.await(); 等待
:::
Semaphore 计数信号量
演示代码
:::info
规定允许的最大线程数量,调用获得方法,线程数量减一,数量减为零时,等待,调用释放方法,线程数量加一
Semaphore semaphore = new Semaphore(3); 允许的最大线程数量
semaphore.acquire(); 获得,允许的线程数量减一,数量减为零时,等待
semaphore.release(); 释放,允许的线程数量加一
:::