package com.company.bingfa;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
class MyThread2 extends Thread{
private CyclicBarrier c;
MyThread2(CyclicBarrier c){
this.c = c;
}
@Override
public void run() {
System.out.println(getName()+"开始线程");
try {
sleep(2000);
c.await();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (BrokenBarrierException e) {
e.printStackTrace();
}
System.out.println(getName()+"结束线程");
}
}
public class MyCyclicBarrier {
public static void main(String[] args) {
CyclicBarrier c = new CyclicBarrier(3);
MyThread2 t1 = new MyThread2(c);
MyThread2 t2 = new MyThread2(c);
MyThread2 t3 = new MyThread2(c);
t1.start();
t2.start();
t3.start();
System.out.println("主线程结束");
/*
主线程结束
Thread-0开始线程
Thread-2开始线程
Thread-1开始线程
Thread-2结束线程
Thread-0结束线程
Thread-1结束线程
*/
}
}