zoukankan      html  css  js  c++  java
  • CountDownLatch CyclicBarrier Semaphore

    如下是简单的线程

    for (int i = 0; i <10 ; i++) {
         new Thread(()->{
            System.out.println("1");
              },""+i).start();
          }
       System.out.println("2");

    2在线程代码后 但不会在线程执行完后才跑

    CountDownLatch(减计数器)
    CountDownLatch countDownLatch = new CountDownLatch(8);//初始化计数器值
            for (int i = 0; i < 8; i++) {
                new Thread(()->{
                    System.out.println("1");
                    countDownLatch.countDown();//数量-1
                }).start();
            }
            countDownLatch.await();//等待 计数器归0后往下走
            System.out.println("2");

    CountDownLatch减计数 计数器不为0休眠等待  归0后唤醒(也是一个线程)





    CyclicBarrier(加计数器)
     CyclicBarrier cyclicBarrier = new CyclicBarrier(3,()->{
                System.out.println("数量达到3");
            });
            for (int i = 0; i < 3; i++) {
                int i1=i;
                new Thread(()->{
                    System.out.println("第"+i1+"个");
                    try {
                        cyclicBarrier.await();//等待并+1
                    } catch (Exception e) {
                        e.printStackTrace();
                    } 
                }).start();
            }

    指定个数线程跑完后再执行

    Semaphore(限流)(重点)
     Semaphore semaphore = new Semaphore(3);
            for (int i = 0; i < 9; i++) {
                new Thread(()->{
                    try {
                        semaphore.acquire();//获取
                        System.out.println("只能进来指定个数线程");
                        TimeUnit.SECONDS.sleep(2);//等待2s
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }finally {
                        semaphore.release();//释放
                    }
                }).start();
            }

    同一时间只能跑指定数量的线程

  • 相关阅读:
    高燕师姐博客
    2015.1.12
    功能连接分析论文
    半结构化面试
    各大银行
    独立思考者模型:用专家的思维思考问题
    独立思考者模型:避开思维误区的沼泽
    独立思考者模型:寻找潜藏在表象背后的真相
    独立思考者模型:如何分辨信息的真伪
    独立思考者模型:你相信灵魂转世假说吗?
  • 原文地址:https://www.cnblogs.com/hbhb/p/14342647.html
Copyright © 2011-2022 走看看