public class Test {public static void main(String a[]){ExecutorService service = wFixedThreadPool(5);final CyclicBarrier barrier = new CyclicBarrier(5, new Runnable() {public void run() {System.out.println("所有线程已到达栅栏点");try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}}});for (int i = 0; i < 5; i++) {ute(new Player("玩家" + i, barrier));}service.shutdown();}}
class Player implements Runnable {private final String name;private final CyclicBarrier barrier;public Player(String name, CyclicBarrier barrier) {this.name = name;this.barrier = barrier;}public void run() {try {TimeUnit.SECONDS.sleep(1 + (new Random().nextInt(3)));System.out.println(name + "已准备,等待其他玩家准备...");barrier.await(200,TimeUnit.MILLISECONDS);TimeUnit.SECONDS.sleep(1 + (new Random().nextInt(3)));System.out.println(name + "已加入游戏");} catch (InterruptedException e) {System.out.println(name + "离开游戏");} catch (BrokenBarrierException e) {System.out.println(name + "离开游戏");} catch (TimeoutException e) {System.out.println(name + "超时");}}
}
本文发布于:2024-01-28 05:57:29,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063926515294.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |