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
  • 相关阅读:
    判断平面的一堆点是否在两条直线上
    约数的个数 + 贪心
    划分树板子
    如何获取前端提交来得json格式数据
    post 和php://input 转
    使用Guzzle执行HTTP请求
    redis集群搭建 不用ruby
    systemctl命令
    canal 配置 多个监听 推送到不同mq
    canal 整合RabbitMQ
  • 原文地址:https://www.cnblogs.com/moonandstar08/p/5400323.html
Copyright © 2011-2022 走看看