一个demo 学习--CyclicBarrier(十)

package com.study.thread;

import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;

class MyBarrierDemo implements Runnable{

    private CyclicBarrier cyclicBarrier;
    private String name;

    public MyBarrierDemo(CyclicBarrier cyclicBarrier, String t1) {
        this.cyclicBarrier=cyclicBarrier;
        this.name=t1;
    }

    @Override
    public void run() {
        System.out.println(name + " is ok");
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        try {
            this.cyclicBarrier.await();
            System.out.println(name + " is end");
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (BrokenBarrierException e) {
            e.printStackTrace();
        }
    }
}


public class MyBarrier {

    private static CyclicBarrier cyclicBarrier = new CyclicBarrier(2);

    public static void main(String[] args) {
        new Thread(new MyBarrierDemo(cyclicBarrier,"t1")).start();
        new Thread(new MyBarrierDemo(cyclicBarrier,"t2")).start();
    }
}

你可能感兴趣的:(一个demo 学习--CyclicBarrier(十))