1import java.util.concurrent.BrokenBarrierException; 2import java.util.concurrent.CyclicBarrier; 3 4/** 5 * Created by zyBourn on 15/12/25. 6 */ 7public class Entity { 8 /** 9 * 循环屏障 10 * 适用于只有多个线程都到达预订点时才可以继续执行 11 * cyclicBarrier(int num):等待线程的数量 12 * cyclicBarrier(int num,Runnable action):等待线程的数量以及所有线程到达后的操作 13 * await():到达临界点后暂停线程 14 */ 15 public static void main(String[] args) { 16 CyclicBarrier cyclicBarrier=new CyclicBarrier(3, new Runnable() { 17 @Override 18 public void run() { 19 System.out.println("Game start"); 20 } 21 }); 22 23 new Player(cyclicBarrier,"A").start(); 24 new Player(cyclicBarrier,"B").start(); 25 new Player(cyclicBarrier,"C").start(); 26 } 27} 28 29class Player extends Thread{ 30 private CyclicBarrier cyclicBarrier; 31 public Player(CyclicBarrier cyclicBarrier,String name){ 32 setName(name); 33 this.cyclicBarrier=cyclicBarrier; 34 } 35 public void run(){ 36 System.out.println(getName()+":dengdai"); 37 try { 38 cyclicBarrier.await(); 39 } catch (InterruptedException e) { 40 e.printStackTrace(); 41 } catch (BrokenBarrierException e) { 42 e.printStackTrace(); 43 } 44 } 45}
CyclicBarrier 循环屏障
Stella981
2021-10-11
1078 0 0
点赞
收藏
评论区
加载中...