CyclicBarrier 的使用之java并发

package com.uusafe.thread2;


import java.util.Random;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class UseCycleBrrier {

static class Runner implements Runnable {

private CyclicBarrier barrier;
private String name;


public Runner(CyclicBarrier barrier, String name) {
super();
this.barrier = barrier;
this.name = name;
}




public void run() {

try {
Thread.sleep(new Random().nextInt(1000));
System.out.println(name+" 准备OK");
barrier.await();
} catch (Exception e) {
// TODO: handle exception
}
System.out.println(name+" Go ");
}
}



public static void main(String[] args) {
CyclicBarrier barrier=new CyclicBarrier(3);

ExecutorService executorService=Executors.newFixedThreadPool(3);
executorService.submit(new Runner(barrier,"任务1"));

executorService.submit(new Runner(barrier,"任务2"));

executorService.submit(new Runner(barrier,"任务3"));

executorService.shutdown();


}




}

猜你喜欢

转载自blog.csdn.net/douyunqian668/article/details/80380951