CountDownLatch实现原理及使用姿势在并发编程的场景中,最常见的一个case是某个任务的执行,需要等到多个线程都执行完毕之后才可以进行,CountDownLatch可以很好解决这个问题
下面将主要从使用和实现原理两个方面进行说明,围绕点如下CountDownLatch 是个什么鬼
怎么用(结合case说明)
底层实现原理(及如何保障功能的正常性)
I. 使用说明同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待
比较有意思的是,CountDownLatch并未继承自其他的类or接口,在jdk中这样的类并不多见(多半是我孤陋寡闻)
0. 接口定义
在使用之前,得先了解下其定义的几个方法
也就几个接口,基本上都是比较常见的了,需要注意的是不要把await()和Object#wait()方法弄混了,否则就gg思密达了...
1. Demo演示
依然以讲解ReentrantLock中的例子来说明,多线程实现累加
实现如下
输出