多线程-AQS-CountDownLatch
介绍: CountDownLatch--发令枪 Java1.5之后引入的Java并发工具类,谈到CountDownLatch需要先介绍一个概念:闭锁/门栓[latch] latch:一种同步方法,可以延迟线程的进度直到线程到达某个终点状态。闭锁的状态是一次性的,它确保在闭锁打开之前所有特定的活动都需要在闭锁打开之后才能完成。 如若掌握了AQS的实现原理,这里的理解将会更加的水到渠成 ==========================分割线========================== 应用场景 A:如同赛跑,必须等待发令枪响后runner才能起跑一样,在CountDownLatch的计数器归零前,所有引用CountDownLatch闭锁的线程都必须阻塞。总结:准备好了才开始 B:如同购物,只有所有商品都确定购买了才好结账,在所有任务执行完[并进行countDown()]直到归零前,当前任务必须阻塞。总结:准备好了才结束 应用A的样例[准备好了才开始]: import java.util.concurrent.CountDownLatch; /** * Created by ysma on 2018/6/7. */ public class Test { public static void main(String[] args) throws