java多线程开发之通过对战游戏学习CyclicBarrier-创新互联

CyclicBarrier是java.util.concurrent包下面的一个工具类,字面意思是可循环使用(Cyclic)的屏障(Barrier),通过它可以实现让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,所有被屏障拦截的线程才会继续执行。

创新互联是一家集网站建设,德江企业网站建设,德江品牌网站建设,网站定制,德江网站建设报价,网络营销,网络优化,德江网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

这篇文章将介绍CyclicBarrier这个同步工具类的以下几点

  1. 通过案例分析
  2. 两种不同构造函数测试
  3. CyclicBarrier和CountDownLatch的区别
  4. await方法及源码分析。

需求


继上一篇CountDownLatch模拟游戏加载后,现在用户点击开始按钮后,需要匹配包括自己在内的五个玩家才能开始游戏,匹配玩家成功后进入到选择角色阶段。当5位玩家角色都选择完毕后,开始进入游戏。进入游戏时需要加载相关的数据,待全部玩家都加载完毕后正式开始游戏。

解决方案


从需求中可以知道,想要开始游戏需要经过三个阶段,分别是

匹配玩家


选择角色


加载数据


在这三个阶段中,都需要互相等待对方完成才能继续进入下个阶段。


这时可以采用CyclicBarrier来作为各个阶段的节点,等待其他玩家到达,在进入下个阶段。

java多线程开发之通过对战游戏学习CyclicBarrier

定义继承Runnable的类


这里名称就叫做StartGame,包含两个属性

private String player;
private CyclicBarrier barrier;

网站标题:java多线程开发之通过对战游戏学习CyclicBarrier-创新互联
文章网址:http://bzwzjz.com/article/ceggdi.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站建设方案 网站制作公司 泸州网站建设 成都品牌网站设计 重庆企业网站建设 成都网站制作 重庆网站制作 网站制作 梓潼网站设计 成都网站建设 成都网站制作 自适应网站设计 阿坝网站设计 手机网站制作 公司网站建设 成都网站设计 成都网站建设 高端品牌网站建设 网站建设公司 网站设计公司 手机网站建设 成都网站建设