2021版Java同步器教程03:如何使用同步器 CyclicBarrier?

03:如何使用同步器 CyclicBarrier?

视频全集

  • 2021版Java同步器教程

  • 2021版Java线程池教程

  • 2021版Java多线程教程

代码

  • Github地址【全部代码】

Task.class

package main;import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;public class Task implements Runnable {/*** 循环屏障*/private final CyclicBarrier cyclicBarrier;public Task(CyclicBarrier cyclicBarrier) {this.cyclicBarrier = cyclicBarrier;}@Overridepublic void run() {try {// 模拟匹配时长Thread.sleep((long) (Math.random() * 3000));System.out.println(Thread.currentThread().getName() + "匹配成功!");// 所有线程在此集合,一起往下执行cyclicBarrier.await();// 模拟准备时长Thread.sleep((long) (Math.random() * 3000));System.out.println(Thread.currentThread().getName() + "准备好了~");// 所有线程在此集合,一起往下执行cyclicBarrier.await();// 模拟加载时长Thread.sleep((long) (Math.random() * 3000));System.out.println(Thread.currentThread().getName() + "加载完成。");// 所有线程在此集合,一起往下执行cyclicBarrier.await();} catch (InterruptedException | BrokenBarrierException e) {e.printStackTrace();}}
}

Main.class

package main;import java.util.concurrent.CyclicBarrier;/*** @author 【B站】人人都是程序员* @author 【掘金】人人都是程序员* @author 【CSDN】人人都是程序员* @author 【今日头条】人人都是程序员* @author 【官方网站】www.gorhaf.com* @author 【微信公众号】gorhaf* 欢迎大家扫描下方二维码关注我们* █▀▀▀▀▀▀▀██▀██████▀▀▀▀██▀▀▀▀▀▀▀█* █ █▀▀▀█ █▄ ▀ ▄▄█▄█▄█▀██ █▀▀▀█ █* █ █   █ █▄▄▀▄▀█▄▄ ██▀ █ █   █ █* █ ▀▀▀▀▀ █ █ █▀▄▀▄ █ █ █ ▀▀▀▀▀ █* █▀▀▀▀▀█▀▀▀▀▀█ █▀▄▀▀█ ▄▀█▀█▀█▀██* █▄▄▄ ██▀█  █▀▀ ▀  ▄ ▄▀▄   ███▄█* ██  ▀▀█▀ ▄ ▄ █▀▄▄▄▀▄▀▄ ▄██▀▀▄██* █ █▄▄  ▀ █ ▄█▄▄▄▀▄▀█▄ ▄ ▄ █ █▄█* █  ▄██▄▀██▄ █ ▀▄▀ ▀▀ ▄▄▄▀██▀▄██* █ █▀▀█▀▀█▀ █▀▀█▄▀▀█▀▄ ▀▄    █▄█* █ █▀▀██▀▀█▀  █▀▀  ██▄▀▀▀▀▀█▀ ▀█* █▀▀▀▀▀▀▀█ ▄██▄▄▀▀▀▄▄▀ █▀█   ▄▄█* █ █▀▀▀█ █▀ ▄█ █▀ ▄▀▄▄ ▀▀▀  ▀▀ █* █ █   █ █ ▄▀▀▀█▄ ▄▀▄▀ █▀▀▀ ▀ ▄█* █ ▀▀▀▀▀ █ ▀█ ▀█▄  █▄█▄▄█  ▄▀▄██* ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀*/
public class Main {public static void main(String[] args) {// 创建CyclicBarrier对象CyclicBarrier cyclicBarrier = new CyclicBarrier(5, new Runnable() {@Overridepublic void run() {System.out.println(Thread.currentThread().getName());}});// 创建多个线程并发执行for (int i = 1; i <= 5; i++) {// 创建任务Task task = new Task(cyclicBarrier);// 创建线程Thread thread = new Thread(task, "玩家" + i + "号");// 启动线程thread.start();}}
}

2021版Java同步器教程03:如何使用同步器 CyclicBarrier?相关推荐

  1. 【2021版PHP高级教程-Swoole4.X从入门到精通全套高级实战】

    众所周知,Swoole 和我们传统的 PHP 开发差别是有的,需要理解的概念也是有的.使用目前一些基于 Swoole 的框架开发的话,从开发习惯上和传统的TP 框架相差不多.根据官方介绍它是一个底层通 ...

  2. 2021版Java知识体系详解!(赠视频)

    本篇文章是我们整理的一份架构师的成长路线,包括了并发编程.设计模式.常用框架.中间件.微服务与分布式.常用工具.JVM.MySQL.数据结构与算法,还有架构师精选视频.架构师成长路线高清大图. 又是新 ...

  3. Java知识体系最强总结(2021版)

    学习Java请关注B站 [黑马程序员] 文章目录 前言 第一阶段: Java基础 第二阶段: JavaWeb 第三阶段:Java开发框架 第四阶段:中间件&服务框架 第五阶段:企业级项目实战 ...

  4. Python视频制作引擎Manim安装教程2021版(科学概念可视化)

    Python视频制作引擎Manim安装教程2021版 0 写在前面 1 效果展示 2 安装教程(Windows) 2.1 安装ffmpeg 2.2 安装Latex 2.3 安装dvisvgm 2.4 ...

  5. Java官方教程目录2021最新版

    前言 本文是橙子出于兴趣爱好对Java官方教程的尝试翻译,几乎每日更新,感兴趣的朋友可以关注一下橙子:翻译过程中尽可能多的对一些关键词保留了英文原文,如果你想看最纯正的英文原版教材却又看不懂,可以试着 ...

  6. Java官方教程(七-3)Using Objects 使用对象(2021.4.10)

    前言 本文是橙子出于兴趣爱好对Java官方教程的尝试翻译,几乎每日更新,感兴趣的朋友可以关注一下橙子:翻译过程中尽可能多的对一些关键词保留了英文原文,如果你想看最纯正的英文原版教材却又看不懂,可以试着 ...

  7. 最新JAVA安装教程(Mac版)

    文章目录 一.下载JDK安装包 二.安装 注:只适用于非M1内核的苹果电脑 三.检查安装 四.友情链接 1.[最新JAVA安装教程(Win10版)](https://blog.csdn.net/wei ...

  8. 我的世界Minecraft基岩版开服教程(Linux)开服器开服包下载开服网站服务器开服核心开服端开服软件mac版Java启动器

    我的世界Minecraft基岩版开服教程(Linux)开服器开服包下载开服网站服务器开服核心开服端 前言:大家好我是艾西,接上一篇我的世界Minecraft Java开服教程(Windows) 这期跟 ...

  9. Visual Studio Code 安装教程2021版

    Visual Studio Code 安装教程2021版 下载Visual Studio Code 1:官网下载 2:网盘下载 开始安装 1:双击下载后的可执行文件,安装 2:勾选同意,然后点击下一步 ...

  10. 集合百家之面试!阿里巴巴Java突击手册(2021版)已完结

    今年的金三银四,对很多想改变现状的人来说非常关键.Java程序员也是如此. 无论你是镀金也好,还是追求高薪,进入阿里一直是大多Java程序员的一个目标.网上关于阿里的面试分享也层出不穷,让人目不暇接. ...

最新文章

  1. Ansible的安装及部署
  2. 在桌面应用程序与Web应用程序之间该如何选择
  3. jquery模糊查询
  4. 【转载】ARX给CAD发送命令的几种方法
  5. bat 批处理获取时间语法格式
  6. oracle 拼接_老品牌三明49寸液晶拼接屏多少钱支持定制
  7. InfoQ宣布成立CNUT容器技术俱乐部 欲连接中国容器社区
  8. tomcat启动报错:Bean name 'XXX' is already used in this beans element
  9. 自己写一个H5项目CI系统
  10. 图论--有向图强连通分量的标记及缩点模板
  11. sql关于视图的sql_学习SQL:SQL视图
  12. 7-3 DAG图优化-A (15 分)(更新版)
  13. velocity 获取list对象_Redis专题2:认识list、Zset与BitMaps
  14. atitit. java queue 队列体系and自定义基于数据库的队列总结o7t
  15. win10开始菜单添加磁贴_IT之家学院:Win10 自定义开始菜单磁贴背景颜色及图标...
  16. 序列号Serial Number管理
  17. 用excel制作双层饼图_Excel做的双层饼图,太漂亮了
  18. 《不抱怨的世界》-- 威尔·鲍温(Will Bowen)
  19. svm神经网络葡萄酒matlab,SVM神经网络的数据分类预测-葡萄酒种类识别
  20. 机房布线的最高境界 | 最后的暗黑系,真是亮瞎眼

热门文章

  1. RC振荡电路 双三极管多谐振荡器
  2. 微软笔试题-c语言-算法分析
  3. Amplify Shader Editor手册
  4. 通识2——“视频编码”的相关概念
  5. HTML5植物大战僵尸网页版游戏源码
  6. WEBQQ登陆综合帖
  7. 小米汽车VS苹果汽车,相同赛道不同逻辑
  8. struts2 通配符的配置方式
  9. 数据备份与恢复、系统备份与恢复
  10. pmp知识点(8)-项目质量管理