2019独角兽企业重金招聘Python工程师标准>>>

每个线程代表一个赛跑运动员,当所有的赛跑运动员都准备好了,才一起出发,只要有一个没有准备好,大家都要等待着。

package cm.concurrent;import java.util.Random;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class UseCyclicBarrier {static class Runner implements Runnable{private CyclicBarrier barrier;private String name;public Runner(CyclicBarrier barrier, String name) {this.barrier = barrier;this.name = name;}@Overridepublic void run() {try {Thread.sleep(new Random().nextInt(5));System.out.println(name+"准备就绪.....");barrier.await();} catch (InterruptedException e) {e.printStackTrace();} catch (BrokenBarrierException e) {e.printStackTrace();}System.out.println(name+"Go!!!!!");}} public static void main(String[] args) {//准备的次数3次,如果没有达到,会一直处于阻塞状态。CyclicBarrier barrier=new CyclicBarrier(3);ExecutorService executor=Executors.newFixedThreadPool(3);executor.submit(new Thread(new Runner(barrier, "z3")));executor.submit(new Thread(new Runner(barrier, "l4")));executor.submit(new Thread(new Runner(barrier, "w5")));executor.shutdown();}
}

转载于:https://my.oschina.net/2286252881/blog/863090

java.util.concurrent.CyclicBarrier;相关推荐

  1. 聊聊高并发(三十)解析java.util.concurrent各个组件(十二) 理解CyclicBarrier栅栏

    这篇讲讲CyclicBarrier栅栏,从它的名字可以看出,它是可循环使用的.它的功能和CountDownLatch类似,也是让一组线程等待,然后一起开始往下执行.但是两者还是有几个区别 1. 等待的 ...

  2. java.util.concurrent包API学习笔记

    newFixedThreadPool 创建一个固定大小的线程池. shutdown():用于关闭启动线程,如果不调用该语句,jvm不会关闭. awaitTermination():用于等待子线程结束, ...

  3. Java并发编程-并发工具包(java.util.concurrent)使用指南(全)

    1. java.util.concurrent - Java 并发工具包 Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包.这个包包含有一系列能够让 Ja ...

  4. Java并发编程-并发工具包java.util.concurrent使用指南

    译序 本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新 本指南已做成中英文对照阅读版的 pdf 文档,有兴趣的朋友可以去 Java并发工具包java.util.concurren ...

  5. java.util.concurrent 包下面的所有类

    java.util.concurrent 包下面的所有类 原子操作数类: java.util.concurrent.atomic.AtomicBoolean.class java.util.concu ...

  6. java多线程学习-java.util.concurrent详解

    http://janeky.iteye.com/category/124727 java多线程学习-java.util.concurrent详解(一) Latch/Barrier 博客分类: java ...

  7. java.util.concurrent 编程范例

    http://kanglecjr.iteye.com/blog/1070934 java.util.concurrent 范例之一 博客分类: Java JavaTomcatthread java.u ...

  8. 使用java.util.concurrent包处理多线程

    出处:http://blog.csdn.net/hjl_168562/article/details/8158023 1.使用拥有固定的线程数的线程池执行线程任务 package com.justin ...

  9. java多线程学习-java.util.concurrent详解(一) Latch/Barrier

    2019独角兽企业重金招聘Python工程师标准>>> Java1.5提供了一个非常高效实用的多线程包:java.util.concurrent, 提供了大量高级工具,可以帮助开发者 ...

最新文章

  1. 中国象棋人机博弈程序(扁平化棋局) C语言实现
  2. 盘点大数据生态圈,那些繁花似锦的开源项目
  3. OpenGL基于PBR的图像的光照IBL的实例
  4. 《数据库原理与应用》(第三版)第11章 存储过程和触发器 基础 习题参考答案
  5. 多库共存 包装集的问题 点击按钮创建一个p 几个属性介绍 jQuery的插件
  6. MySQL 如何实现 Oracle 的 row_number() over() 分组排序功能
  7. android炫酷叼ui,XUI: 一个简洁而优雅的Android原生UI框架,解放你的双手!
  8. NFrog[NHibernate代码工具]发布第一个版本
  9. 微信小程序php签到功能,微信小程序签到功能
  10. 国内自动化测试软件,AutoRunner-国内测试行业专业自动化测试工具成长史
  11. 浅谈如何保障服务器安全
  12. 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary
  13. MM-Wiki部署方案
  14. linux jnlp显示异常,使用headless jnlp将slave连接到master时显示异常
  15. 【跨域】一篇文章彻底解决跨域设置cookie问题!
  16. 计算机表格按性别排列,excel表格数据男女分类-Excel 按性别(男女)排序
  17. matlab中欠定方程组超定方程组_学会这些三元一次方程组的解法思路与运用,初中不再怕解方程...
  18. 不得不看的五个堪称神器的在线网站工具
  19. 电商平台-商品表的设计
  20. Merriam-Webster's Vocabulary Builder 学习笔记 Unit 24

热门文章

  1. Linux终端中设置vi编辑命令
  2. HDOJ---1257 最少拦截系统[线性DP]+NYOJ---拦截导弹[输出最长单调子序列的长度]
  3. php lyadmin,index.php
  4. 计算机及网络应用基础思维导图_计算机基础/算法/面试题 PDF+思维导图下载
  5. 分享Kali Linux 2017年第17周镜像文件
  6. python第一单元笔记_Python 初学笔记 - 第一章-列表
  7. ehcache缓存原理_贼厉害,手撸的 SpringBoot缓存系统,性能杠杠的!
  8. java中bufferendwriter_Java IO系列(三)Writer
  9. Linux打过cat没有编码,linux系统 终端下 cat中文乱码/vim不乱码 或者 cat不乱码/vim中文乱码...
  10. 科学家解码脑信号以控制机器人假肢