62,625
社区成员
发帖
与我相关
我的任务
分享
public class Car extends Thread {
private CyclicBarrier cyclicBarrier;
public Car(CyclicBarrier cyclicBarrier) {
super();
this.cyclicBarrier = cyclicBarrier;
}
@Override
public void run() {
try {
Thread.sleep((int)(Math.random() * 1000));
System.out.println(Thread.currentThread().getName() + " arrived at " + System.currentTimeMillis());
cyclicBarrier.await();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (BrokenBarrierException e) {
e.printStackTrace();
}
}
}
public class TestCyclicBarrier {
public static void main(String[] args) {
CyclicBarrier cyclicBarrier = new CyclicBarrier(5, new Runnable() {
@Override
public void run() {
System.out.println("All arrived!");
}
});
Car[] carArray = new Car[5];
for (int i = 0; i < carArray.length; i++) {
carArray[i] = new Car(cyclicBarrier);
}
for (int i = 0; i < carArray.length; i++) {
carArray[i].start();
}
}
}
public class TestCyclicBarrier {
@Test
public void test() {
CyclicBarrier cyclicBarrier = new CyclicBarrier(5, new Runnable() {
@Override
public void run() {
System.out.println("All arrived!");
}
});
Car[] carArray = new Car[5];
for (int i = 0; i < carArray.length; i++) {
carArray[i] = new Car(cyclicBarrier);
}
for (int i = 0; i < carArray.length; i++) {
carArray[i].start();
}
}
}