CyclicBarrier和CountDownLatch

CyclicBarrier:

用于协调多个线程同步执行的操作场合,所有线程等待完成,然后一起执行
使用方式:
CyclicBarrier barrier = new CyclicBarrier(3);
定义初始数量,线程数必须达到才能执行
代码示例:

   public static void main(String[] args) {
    CyclicBarrier barrier = new CyclicBarrier(3);
    new Thread(()->{
        try {
            Thread.sleep(1000);
            System.out.println("1就位"+barrier.getNumberWaiting());
            barrier.await();
            System.out.println("1开始执行");
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        } catch (BrokenBarrierException e) {
            throw new RuntimeException(e);
        }
    }).start();
    new Thread(()->{
        try {
            Thread.sleep(3000);
            System.out.println("2就位"+barrier.getNumberWaiting());
            barrier.await();
            System.out.println("2开始执行"

你可能感兴趣的:(Java并发编程,java)