public class CyclicBarrierTest {
public static int j = 0;
public static void main(String[] args) throws InterruptedException {
test_CyclicBarrier();
}
public static void test_CyclicBarrier(){
CyclicBarrier cyclicBarrier = new CyclicBarrier(2,() -> {
System.out.println("完成回调");
});
new Thread(() -> {
try {
// Thread.currentThread().interrupt();
cyclicBarrier.await();
System.out.println("1");
} catch (InterruptedException e) {
e.printStackTrace();
} catch (BrokenBarrierException e) {
e.printStackTrace();
}
},"T1").start();
new Thread(() -> {
try {
cyclicBarrier.await();
System.out.println("2");
} catch (InterruptedException e) {
e.printStackTrace();
} catch (BrokenBarrierException e) {
e.printStackTrace();
}
},"T2").start();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("3");
// cyclicBarrier.reset();
// new Thread(() -> {
// try {
// cyclicBarrier.await();
// } catch (InterruptedException e) {
// e.printStackTrace();
// } catch (BrokenBarrierException e) {
// e.printStackTrace();
// }
// System.out.println("4");
// },"T4").start();
// try {
// cyclicBarrier.await();
// } catch (InterruptedException e) {
// e.printStackTrace();
// } catch (BrokenBarrierException e) {
// e.printStackTrace();
// }
// System.out.println("5");
}
}
CyclicBarrier使用示例
最新推荐文章于 2024-05-15 16:12:14 发布