zoukankan      html  css  js  c++  java
  • 练习题之CyclicBarrier与CountDownLatch

    一、CyclicBarrier使用

      new Thread().start();

      new Thread(new Runnable() {},"XXX").start();

    public class CyclicBarrierTest {
     
      public static int NUM=10;
    
      public static void main(String[] args) {
       CyclicBarrier cyc = new CyclicBarrier(10);
       for(int i=0;i<NUM;i++) {
         new Thread(new Runnable() {
              public void run() {
                 System.out.println(Thread.currentThread().getName() +":before CyclicBarrier");
                 cyc.await();
                 System.out.println(Thread.currentThread().getName() +":over CyclicBarrier");
              }
         },Thread.currentThread().getname()).start();
       }
      System.out.println("Test");
      }
    }

     输出结果如下:

    main:before CyclicBarrier
    main:before CyclicBarrier
    main:before CyclicBarrier
    main:before CyclicBarrier
    main:before CyclicBarrier
    main:before CyclicBarrier
    main:before CyclicBarrier
    main:before CyclicBarrier
    Test
    main:before CyclicBarrier
    main:over CyclicBarrier
    main:over CyclicBarrier
    main:over CyclicBarrier
    main:over CyclicBarrier
    main:over CyclicBarrier
    main:over CyclicBarrier
    main:over CyclicBarrier
    main:over CyclicBarrier
    main:over CyclicBarrier
    main:over CyclicBarrier

    二、CountDownLatch使用

    public class CountDownTest {
       public static int NUM=10;
      
       public static void main(String[] args) {
          CountDownLatch latch = new CountDownLatch(NUM);
          for(int i =0;i<NUM;i++) {
            new Thread(new Runnable() {
               public void run() {
                System.out.println(Thread.currentThread.getName() + "Before CountDownLatch");
                latch.countDown();
                System.out.println(Thread.currentThread.getName() + "Over CountDownLatch");
    
                }
            },Thread.currentThread.geName()).start();
          }
          latch.await();
          System.out.println("Test");
       }
    }

    输出结果如下:

    main:Before CountDownLatch
    main:Before CountDownLatch
    main:Over CountDownLatch
    main:Before CountDownLatch
    ...
    Test
  • 相关阅读:
    windows下运行命令行mysql,提示mysql不是内部命令,解决办法
    XML和HTML的区别
    BZOJ4695 最假女选手(势能线段树)
    BZOJ5312 冒险(势能线段树)
    洛谷P3959 宝藏(NOIP2017)(状压DP,子集DP)
    区间子集最大/最小异或和问题(线性基,树上差分)
    线性基模板(线性基)
    分数模板(C++模板)
    洛谷P2516 [HAOI2010]最长公共子序列(LCS,最短路)
    组合数学知识要点
  • 原文地址:https://www.cnblogs.com/moonandstar08/p/5400323.html
Copyright © 2011-2022 走看看