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
  • 相关阅读:
    Java集合——Map接口
    Django 创建一个返回当前时间的页面
    python 练习 后台返回当前时间
    python 练习 simple_server 判断路径及返回函数
    通过 docker 来搭建 Jenkins
    Bitbucket 触发内网 Jenkins Build
    jQuery 扩展方法
    HTML 练习滑动
    HTML 练习淡入淡出
    HTML 练习显示隐藏
  • 原文地址:https://www.cnblogs.com/moonandstar08/p/5400323.html
Copyright © 2011-2022 走看看