美文网首页
CountDownLatch的使用

CountDownLatch的使用

作者: 杨凯飞 | 来源:发表于2018-12-11 20:10 被阅读0次

        一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。

package com.jiaoshou.concurency.aqs;

import lombok.extern.slf4j.Slf4j;

import java.util.concurrent.CountDownLatch;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

import java.util.concurrent.TimeUnit;

/**

* @author yangkaifei

* @date 2018/12/11 13:38

*/

@Slf4j

public class CountDownLatchExample{

    //线程数

    private static int threadCount=500;

    public static void main(String[] args)throws InterruptedException {

        //线程池

        ExecutorService exec=Executors.newCachedThreadPool();

        //闭锁实例

        final CountDownLatch countDownLatch=new CountDownLatch(threadCount);

        for (int i =0;i < threadCount; i++){

            final int threadNum=i;

            exec.execute(

                ()->{

                    try {

                        test(threadNum);

                    }catch (Exception e) {

                        e.printStackTrace();

                        log.info("出现异常");

                    }finally {

                        countDownLatch.countDown();//减一操作

                    }

                });

            }

             //countDownLatch等于0,线程池执行完毕在执行以下语句。超过这个时间也不执行

            countDownLatch.await(10,TimeUnit.MILLISECONDS);

            log.info("完成");

            exec.shutdown();//关闭线程池

    }

    private static void test(int number) {

        log.info("number:{}",number);

    }

}

相关文章

  • countdown设计模式

    使用JDK自带的countdownLatch

  • 8. Java中的并发工具类

    CountDownLatch 作用:等待一个或多个线程执行完成; 使用: CountDownLatch cdl =...

  • JUC并发编程-6.CountDownLatch源码解析

    1.CountDownLatch相关API使用 运行结果 2.CountDownLatch相关API解读 new ...

  • CountDownLatch的使用

    一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 Co...

  • CountDownLatch的使用

    1 CountDownLatch CountDownLatch.Sync继承了AbstractQueuedSync...

  • CountDownLatch的使用

    CountDownLatch是java中一个协调多线程的工具类,假如多线程在执行后,需要等待所有都执行完再执行下一...

  • CountDownLatch 使用

    java.util.concurrent.CountDownLatch是一个并发结构,它允许一个或多个线程等待一组...

  • CountDownLatch使用

    该类是一个同步功能的辅助类,使用效果是给定一个技术,当使用这个类的线程判断计数不为0时,则成wait状态,如果为0...

  • CountDownLatch使用

    CountDownLatch使用 CountDownLatch是java中的一个同步工具类.用于对线程的阻塞和唤醒...

  • CountDownLatch使用

    CountDownLatch是JAVA提供在java.util.concurrent包下的一个辅助类。 内部有一个...

网友评论

      本文标题:CountDownLatch的使用

      本文链接:https://www.haomeiwen.com/subject/vuaehqtx.html