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();
}
}
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();
}
}