文档章节

在集合点的同步 CyclicBarrier

C
 Canaan_
发布于 08/11 00:31
字数 471
阅读 0
收藏 0

它允许两个或者多个线程在某个点上进行同步。这个类与CountDownLatch类似但也有不同,使之成为更加大的类

1.它使用一个整数进行初始化,这个数是需要在某个点上同步的线程数。当一个线程到达
指定的点后,它将调用await()等待其他线程。当线程调用await()方法后,
CyslicBarrier类将阻塞这个线程并使之休眠直到所有其他线程到达。当最后一个
线程调用CyslicBarrier类的await()时,CyslicBarrier对象将唤醒所有在等待的线程,
然后这些线程将继续执行。

2.CyslicBarrier它可以 传入另一个Runbale对象作为初始化参数。当所有线程
都到达集合点后,CyslicBarrier类将这个Runable对象作为线程执行。

3.CyslicBarrier.getNumberWaiting() 返回在await()上阻塞的线程数目,
4.CyslicBarrier.getParties()  返回被CyslicBarrier 对象同步的任务数。

5.重置 CyslicBarrier

rest()方法提供重置,当重置发生后,在await()方法中等待的纯种将收到一个
BrokenBarrierException异常。

6.损坏CyslicBarrier

CyslicBarrier 对象有一种特殊的状态即损坏状态(Broken)。当线程在await()
方法上等待的时候,如果其中一个线程被中断,这个线程将抛出InterruptedException
异常,其他的等待线程将抛出BrokenBarrierException异常,于是CyslicBarrier对象
就处于损坏状态了。
CyslicBarrier.isBroken()方法可以 判断,ture为损坏

 

《摘自-java7并发编程实战》

© 著作权归作者所有

共有 人打赏支持
C
粉丝 17
博文 305
码字总数 132149
作品 0
福州
私信 提问
Java并发编程中级篇(四):使用CyclicBarrier实现并发线程在集合点同步

上一节讲到了CountDownLatch这个并发辅助类,它能够让一个线程等待其他并发线程执行完一组任务后再继续执行,也可以说是实现了并发线程在集合点同步。但是Java又给出了一个更强大的并发辅助类...

阿拉德大陆的魔法师
2016/11/26
52
0
java并发之同步辅助类CyclicBarrier

CyclicBarrier含义: 栅栏允许两个或者多个线程在某个集合点同步。当一个线程到达集合点时,它将调用await()方法等待其它的线程。线程调用await()方法后,CyclicBarrier将阻塞这个线程并将它...

happyhuangjinjin
03/18
0
0
用栅栏(CyclicBarrier)实现高并发测试

CyclicBarrier 含义 栅栏允许两个或者多个线程在某个集合点同步。当一个线程到达集合点时,它将调用await()方法等待其它的线程。线程调用await()方法后,CyclicBarrier将阻塞这个线程并将它置...

harries
07/10
0
0
同步工具类:CountDownLatch、CyclicBarrier和Exchanger

CountDownLatch 1.1说明: CountDownLatch可以理解为一个计数器在初始化时设置初始值,当一个线程需要等待某些操作先完成时,需要调用await()方法。这个方法让线程进入休眠状态直到等待的所有...

moonlightX
07/28
0
0
Java编程的逻辑 -- 并发章 -- 线程的基本协作机制

线程的基本协作 线程的基本协作示例 总结 线程的基本协作 多线程间除了竞争访问同一资源外,也经常需要相互协作的去执行一些任务。而对于协作的基本机制用的最多的无疑是wait/notify。 协作的...

HikariCP
06/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

This APT has Super Cow Powers.

在Debian/Ubuntu上,apt包管理器内嵌着一个彩蛋. 如果你在命令行界面输入 apt help 在最后一行能找到This APT has Super Cow Powers. 说明该apt具有超级牛力 牛力是个什么梗? 则说明你的系统...

taadis
13分钟前
0
0
起薪2万的爬虫工程师,Python需要学到什么程度才可以就业?

爬虫工程师的的薪资为20K起,当然,因为大数据,薪资也将一路上扬。那么,Python需要学到什么程度呢?今天我们来看看3位前辈的回答。 1、前段时间快要毕业,而我又不想找自己的老本行Java开发...

糖宝lsh
21分钟前
1
0
携手开发者共建云生态 首届腾讯云+社区开发者大会在京举办

本文由云+社区发表 北京时间12月15日,由腾讯云主办,极客邦科技、微信、腾讯TEG协办的首届腾讯云+社区开发者大会在北京朝阳悠唐皇冠假日酒店举办。在会上,腾讯云发布了重磅产品开发者平台以...

腾讯云加社区
42分钟前
1
0
人工智能时代员工如何证明其IT工作价值

机器人可以取代你的工作吗?你能帮助机器人完成它的工作吗?如果你正在考虑自己的职业生涯以及今后将如何发展,那么应该询问自己这些问题了。 机器人可以取代你的工作吗?你能帮助机器人完成它的...

Linux就该这么学
43分钟前
2
0
CPU性能过剩提升乏力影响未来行业发展吗?

虽然CPU仍然在不断发展,但是它的性能已经不再仅仅受限于单个处理器类型或制造工艺上了。和过去相比,CPU性能提升的步伐明显放缓了,接下来怎么办,成为横亘在整个行业面前的大问题。 自201...

linuxCool
54分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部