zoukankan      html  css  js  c++  java
  • CyclicBarrier 简介

    CyclicBarrier 简介

    CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。 它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。 CyclicBarrier 默认的构造方法是 CyclicBarrier(int parties),其参数表示屏障拦截的线程数量,每个线程调用 await 方法告诉 CyclicBarrier 我已经到达了屏障,然后当前线程被阻塞。
    import java.util.concurrent.BrokenBarrierException;
    import java.util.concurrent.CyclicBarrier;
    
    public class CyclicBarrierTest {
        static CyclicBarrier c = new CyclicBarrier(2,new A());
        public static void main(String[] args) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        c.await();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    } catch (BrokenBarrierException e) {
                        e.printStackTrace();
                    }
                    System.out.println(1);
                }
            }).start();
            
            try {
                c.await();
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (BrokenBarrierException e) {
                e.printStackTrace();
            }
            System.out.println(2);
        }
        
        static class A implements Runnable{
    
            @Override
            public void run() {
                System.out.println(3);
            }
        }
    }
    

    点击查看结果

    ``` 3 1 2 or 3 2 1 ```

    参考链接

  • 相关阅读:
    关于jQuery的选择器
    解读position定位
    html5新增的功能。
    关于ajax的同步异步
    响应式布局由来和剖析
    jQuery的效果函数及如何运用
    jQuery的选择器
    position定位的解析与理解
    HTML5与CSS3中新增的属性详解
    对Ajax的解析
  • 原文地址:https://www.cnblogs.com/hgnulb/p/10091656.html
Copyright © 2011-2022 走看看