java多线程及并发包的知识点很多,在日常工作中很少用到,所以很难有较深刻的理解。这段时间计划深入学习一下juc,在深入源码前,先弄清楚每个类的用途,死记硬背不如找一个容易理解的例子来加深印象。
CountDownLatch
CountDownLatch称之为闭锁,主要用于等待一组线程执行完毕再统一执行后面的程序,这样描述比较乏味难以记忆,在网上看到一个比较好的例子,拿过来分享一下。
例子
每天起早贪黑的上班,父母每天也要上班,话说今天定了个饭店,一家人一起吃个饭,通知大家下班去饭店集合。假设:3个人在不同的地方上班,必须等到3个人到场才能吃饭,用程序如何实现呢?
实现
1 | public class LatchTest { |
总结
这个小例子给人的印象深刻,一下就理解了如何使用闭锁。先学会用,接下来研究一下源码。