java 之CountDownLatch 原理(并发编程模块,很有难度)

写在前头的话,这部分知识比较深奥。

先放结论

CountDownLatch是同步工具类之一,可以指定一个计数值,在并发环境下由线程进行减1操作,因此,会堵塞 线程,当计数值变为0之后,被await方法阻塞的线程将会唤醒,也会 释放锁,实现线程间的同步。它位于java.util.concurrent包下,应用场景:应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行。

//------------------不写分析过程,下面几个链接可以直接参考,(书籍建议参考java并发编程,tips,对java基本知识掌握的非常熟练,对线程也有一定的了解,尤其是对锁,同步,堆栈的理解比较深入后,再去看本章节)

分析CountDownLatch的实现原理
https://www.jianshu.com/p/7c7a5df5bda6?ref=myread
什么时候使用CountDownLatch
http://www.importnew.com/15731.html

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore的比较
http://www.cnblogs.com/dolphin0520/p/3920397.html

拓展:
分析Java线程池的创建
https://www.jianshu.com/p/adbf37ef77bb

分析Java线程池执行原理
https://www.jianshu.com/p/f62a3f452869
线程池里的大学问:分析Java的线程池执行原理(推荐技术大牛:展翅而飞)

https://mp.weixin.qq.com/s?__biz=MzA4MjYyOTQ0Mg==&mid=2649688582&idx=2&sn=4cfb1b50801f05281e2642d7155720cd&chksm=87996c2bb0eee53d6708160d2c18a957459ed91cee8d048a8e230df91cbcbfe34528769ee775#rd
分析Java的线程池可调用任务执行原理
https://www.jianshu.com/p/f624934b9a23
分析ReentrantLock的实现原理
https://www.jianshu.com/p/fe027772e156

猜你喜欢

转载自blog.csdn.net/qq_35967283/article/details/86518954