Java多线程之CyclicBarrier用法


本文目录

  1. CyclicBarrier的基本概念
  2. CyclicBarrier的案例:集齐7颗龙珠就可以召唤神龙

1. CyclicBarrier的基本概念

CyclicBarrier的字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是:

1. 让一组线程到达一个屏障(也可以叫同步点)时被阻塞, 直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。
2. 线程进入屏障通过CyclicBarrier的await()方法。

2. CyclicBarrier的案例:集齐7颗龙珠就可以召唤神龙


实现:

public class CyclicBarrierDemo
{private static final int NUMBER = 7;public static void main(String[] args){//构造方法,CyclicBarrier(int parties, Runnable barrierAction)CyclicBarrier cb = new CyclicBarrier(NUMBER, () -> { System.out.println("------召唤神龙");} ) ;for (int i = 1; i <=NUMBER; i++) {final int tempInt = i;new Thread(() -> {try {System.out.println(Thread.currentThread().getName()+"\t 收集到第:"+tempInt+"颗龙珠");cb.await();} catch (InterruptedException | BrokenBarrierException e) {e.printStackTrace();}},String.valueOf(i)).start();}}
}

编译结果:

Java多线程之CyclicBarrier用法相关推荐

  1. Java多线程之Semaphore用法

    Java多线程之Semaphore用法 本文目录: Semaphore基本概念 Semaphore使用案例:3个停车位,6辆车去抢,走一辆,抢一个停车位. 1. Semaphore基本概念 在信号量上 ...

  2. Java多线程之CountDownLatch用法

    Java多线程之CountDownLatch用法 本文目录: CountDownLatch基本概念 CountDownLatch案例:6个同学陆续离开教室后班长才可以关门 CountDownLatch ...

  3. (九)java多线程之CyclicBarrier

    目录 引言 理论 例子 打赏 本人邮箱: kco1989@qq.com 欢迎转载,转载请注明网址 http://blog.csdn.net/tianshi_kco github: https://gi ...

  4. (十)java多线程之CountDownLatch

    目录 引言 理论 例子 打赏 本人邮箱: kco1989@qq.com 欢迎转载,转载请注明网址 http://blog.csdn.net/tianshi_kco github: https://gi ...

  5. JAVA多线程之wait/notify

    本文主要学习JAVA多线程中的 wait()方法 与 notify()/notifyAll()方法的用法. ①wait() 与 notify/notifyAll 方法必须在同步代码块中使用 ②wait ...

  6. Java多线程之Callable、Future和FutureTask

    Java多线程之Callable接口 自己想总结一下的,看到一篇总结的更好的博客,就转载了,突然感觉真轻松,哈哈哈哈 文章转载于:Matrix海子:Java并发编程:Callable.Future和F ...

  7. Java多线程之Synchronized和Lock的区别

    Java多线程之Synchronized和Lock的区别 目录: 原始构成 使用方法 等待是否可以中断 加锁是否公平 锁绑定多个条件Condition 小结:Lock相比较Synchronized的优 ...

  8. Java多线程之CAS缺点

    Java多线程之CAS缺点 目录: 循环时间开销很大 只能保证一个共享变量的原子操作 引来ABA问题及解决方案(重点) 1. 循环时间开销很大 通过看源码,我们发现有个do while,如果CAS失败 ...

  9. Java多线程之CAS深入解析

    Java多线程之CAS深入解析 目录: CAS是什么 CAS底层原理Unsafe深入解析 CAS缺点 引子:蚂蚁花呗一面:讲一讲AtomicInteger,为什么要用CAS而不是synchronize ...

最新文章

  1. 如何用 OS X 的 Xcode 写C语言程序
  2. 自动增加asp元件及onclick
  3. 拦截器中/* vs /** ------SpringMVC
  4. 新加入“扫码阅读”功能
  5. Gdiplus::GdiplusBase::operator new 函数不接受3 个参数问题的处理
  6. 如何提取明细表头_如何在实际操作中应用偏移修剪?
  7. easyUI-combotree的本地数据导入
  8. asp.net 生成图形验证码(字母和数字混合)
  9. flex 3 学习小结2
  10. 小米php架构图,小米商城基本框架部分
  11. Step 1: 盲打第三天
  12. c++语言里平方根值函数,函数式编程之函数定义与使用(以scala语言为例)
  13. iWebShop核心团队启动shukai新域名,进入全案SEO网络营销领域发力SEO众包外包服务
  14. EasyBoot常用的命令
  15. MySQL(5)条件查询 | 单行函数 | 事务详解
  16. linux 赋权文件,linux文件赋权
  17. uni-app在华为应用市场上架审核无法通过,涉及个人信息:IMEI用户数据收集问题
  18. Spring项目使用H2内存数据库做单元测试
  19. Linux常用命令一览表
  20. PICT测试工具的安装及使用

热门文章

  1. Socket-Client通信
  2. typedef和函数指针定义
  3. Ubuntu Linux 永山(mount)分
  4. Android Wifi方法大全
  5. window2003 server的一些优化设置_windows 2003
  6. LightOJ - 1071 Baker Vai(最大费用最大流+拆点)
  7. CodeForces - 1208E Let Them Slide(模拟+multiset)
  8. POJ - 3263 Tallest Cow(简单差分)
  9. HDU - 1255 覆盖的面积(线段树+扫描线)
  10. 埃及分数问题——迭代加深搜索