首页 技术 正文
技术 2022年11月15日
0 收藏 916 点赞 3,420 浏览 1300 个字

本文是一篇文章对网络的研究摘要,感谢您的无私分享。

CyclicBarrier 类有一个整数初始值,此值表示将在同一点同步的线程数量。当当中一个线程到达确定点,它会调用await() 方法来等待其它线程。当线程调用这种方法,CyclicBarrier堵塞线程进入休眠直到其它线程到达。当最后一个线程调用CyclicBarrier
类的await() 方法,它唤醒全部等待的线程并继续运行它们的任务。

注意比較CountDownLatch和CyclicBarrier:

1.CountDownLatch的作用是同意1或N个线程等待其它线程完毕运行;而CyclicBarrier则是同意N个线程相互等待。

2.CountDownLatch的计数器无法被重置。CyclicBarrier的计数器能够被重置后使用,因此它被称为是循环的barrier。

package chapter3;import java.util.concurrent.CyclicBarrier;public class TestCyclicBarrier {    private static final int THREAD_NUM = 5;    public static class WorkerThread implements Runnable{        CyclicBarrier barrier;        public WorkerThread(CyclicBarrier b){
this.barrier = b;
} @Override
public void run() {
// TODO Auto-generated method stub
try{
System.out.println("ID:"+Thread.currentThread().getId()+"Worker's waiting");
//线程在这里等待,直到全部线程都到达barrier。barrier.await();
System.out.println("ID:"+Thread.currentThread().getId()+" Working");
}catch(Exception e){
e.printStackTrace();
}
} } /**
*
* <p>
* </p>
* @author zhangjunshuai
* @date 2014-9-29 上午11:27:36
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
CyclicBarrier cb = new CyclicBarrier(THREAD_NUM, new Runnable() {
//当全部线程到达barrier时运行
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("Inside Barrier"); }
}); for(int i=0;i<THREAD_NUM;i++){
new Thread(new WorkerThread(cb)).start();
}
}}

版权声明:本文博主原创文章,博客,未经同意不得转载。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,488
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,487
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,127
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,289