1. 概述
1.1 基本介绍
CountDownLatch
是JUC包中线程同步器的一种实现,又称 倒计数器
, 也就是让一个线程或者多个线程等待其他线程结束后再继续自己的操作,类似加强版 join()
。
-
countDown
: 执行一次, 计数器的数值 -1。 -
await
:等待计算器的值为 0,才进行后面的操作,就像一个栅栏一样。
1.2 主要应用场景
在平时的开发中,会遇到在主线程中开启多个线程去并行执行任务的业务场景,并且主线程需要等待所有的子线程都执行完毕后,再执行主线程进行汇总。这个时候就可以使用CountDownLatch(注释:CountDownLatch出现之前都是使用join来实现,但是join不够灵活)。
1.3 CountDownLatch原理
CountDownLatch cdl = new CountDownLatch(3);