CyclicBarrier 的使用
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
public class Test {
public static void main(String[] args) {
CyclicBarrier barrier = new CyclicBarrier(2,new Vou());
Thread thread = new Thread(new Run(barrier));
thread.start();
Thread thread1 = new Thread(new Run(barrier));
thread1.start();
}
}
class Vou implements Runnable{
@Override
public void run() {
try {
Thread.sleep(100);
System.out.println("李四开始工作了");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class Run implements Runnable {
private CyclicBarrier cyclicBarrier;
public Run(CyclicBarrier barrier){
cyclicBarrier = barrier;
}
@Override
public void run() {
try {
Thread.sleep(500);
System.out.println("张三来了");
cyclicBarrier.await();
} catch (InterruptedException | BrokenBarrierException e) {
e.printStackTrace();
}
}
}