博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CountDownLatch和Cyclicbarrier概念、区别及原理
阅读量:6813 次
发布时间:2019-06-26

本文共 613 字,大约阅读时间需要 2 分钟。

CountDownLatch和Cyclicbarrier概念、区别及原理


1、概念

  CountDownLatch:具有计数器的功能,等待其他线程执行完毕,主线程在继续执行,用于监听某些初始化操作,并且线程进行阻塞,等初始化执行完毕后,通知主线程继续工作执行。值得注意的是CountDownLatch计数的次数一定要与构造器传入的数字一致,比如构造器传入的是3,则countDown()一定要执行3次,否则线程将一直阻塞。CountDownLatch通常用来控制线程等待,它可以让线程等待倒计时结束,再开始执行。

  CyclicBrrier:翻译过来就是循环栅栏的意思,其作用就是多线程的进行阻塞,等待某一个临界值条件满足后,同时执行!假设有一个场景:每个线程代表一个跑步运动员,当运动员都准备好后,才一起出发,只要有一个人没有准备好,大家都等待!

2、区别

  CountDownLatch: 一个线程(或者多个), 等待另外N个线程完成某个事情之后才能执行。

  CyclicBrrier: N个线程相互等待,任何一个线程完成之前,所有的线程都必须等待。


3、Java 8 下源码分析
3.1 CountDownLatch源码

coutDownLatch 底层实现了QAS,具体源码后面再分析。

3.2 CyclicBrrier源码

转载于:https://blog.51cto.com/3265857/2336194

你可能感兴趣的文章
继承的好处和弊端学习
查看>>
RAID与LVM整理与总结
查看>>
51nod 1241:特殊的排序
查看>>
mogilefs详解
查看>>
简单工厂模式结构
查看>>
LearnMVC5-AddView
查看>>
zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法
查看>>
Windows Server 2008 R2和Windows 7脱机加入域
查看>>
让Windwos Server 2008 R2 SP1的FTP真正能访问
查看>>
SCOM-Agent安装—基于Windows工作组
查看>>
简单开发k8s多集群后台
查看>>
Linux MYSQL数据库系统部署及基本语句
查看>>
【01】KVM中小企业实践-概述
查看>>
SVN与Apache整合
查看>>
xml帮助提示
查看>>
assoc 和 ftype
查看>>
搭建mysql主从服务器
查看>>
linux下查看和修改文件时间
查看>>
我的友情链接
查看>>
linux资源分配Cgroup用法
查看>>