CountDownLatch使用案例

CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。
public class Test002 {

public static void main(String[] args) throws InterruptedException {
    System.out.println("等待子线程执行完毕...");
    CountDownLatch countDownLatch = new CountDownLatch(2);
    new Thread(new Runnable() {

        @Override
        public void run() {
            System.out.println("子线程," + Thread.currentThread().getName() + "开始执行...");
            countDownLatch.countDown();// 每次减去1
            System.out.println("子线程," + Thread.currentThread().getName() + "结束执行...");
        }
    }).start();
    new Thread(new Runnable() {

        @Override
        public void run() {
            System.out.println("子线程," + Thread.currentThread().getName() + "开始执行...");
            countDownLatch.countDown();
            System.out.println("子线程," + Thread.currentThread().getName() + "结束执行...");
        }
    }).start();

    countDownLatch.await();// 调用当前方法主线程阻塞  countDown结果为0, 阻塞变为运行状态
    System.out.println("两个子线程执行完毕....");
    System.out.println("继续主线程执行..");
}

}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 591235401@qq.com

文章标题:CountDownLatch使用案例

本文作者:阿杜同学

发布时间:2019-01-18, 22:32:21

最后更新:2019-01-18, 22:32:21

原始链接:http://yoursite.com/2019/01/18/CountDownLatch%E4%BD%BF%E7%94%A8%E6%A1%88%E4%BE%8B/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录