package com.study.thread; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; class MyBarrierDemo implements Runnable{ private CyclicBarrier cyclicBarrier; private String name; public MyBarrierDemo(CyclicBarrier cyclicBarrier, String t1) { this.cyclicBarrier=cyclicBarrier; this.name=t1; } @Override public void run() { System.out.println(name + " is ok"); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } try { this.cyclicBarrier.await(); System.out.println(name + " is end"); } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } } } public class MyBarrier { private static CyclicBarrier cyclicBarrier = new CyclicBarrier(2); public static void main(String[] args) { new Thread(new MyBarrierDemo(cyclicBarrier,"t1")).start(); new Thread(new MyBarrierDemo(cyclicBarrier,"t2")).start(); } }
一个demo 学习--CyclicBarrier(十)
最新推荐文章于 2024-06-17 00:21:37 发布