CyclicBarrier循环栅栏

1.CyclicBarrier循环栅栏

原理

CyclicBarrier的字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。线程进入屏障通过CyclicBarrier的await()方法。

程序代码

package com.atguigu.thread;

import java.util.concurrent.BrokenBarrierException;

import java.util.concurrent.CyclicBarrier;

/**

*

* @Description: TODO(这里用一句话描述这个类的作用)

* @author xialei

*

* CyclicBarrier

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

* 让一组线程到达一个屏障(也可以叫同步点)时被阻塞,

* 直到最后一个线程到达屏障时,屏障才会开门,所有

* 被屏障拦截的线程才会继续干活。

* 线程进入屏障通过CyclicBarrier的await()方法。

*

* 集齐7颗龙珠就可以召唤神龙

*/

public class CyclicBarrierDemo

{

private static final int NUMBER = 7;

public static void main(String[] args)

{

//CyclicBarrier(int parties, Runnable barrierAction)

CyclicBarrier cyclicBarrier = new CyclicBarrier(NUMBER, ()->{System.out.println(“*****集齐7颗龙珠就可以召唤神龙”);}) ;

for (int i = 1; i <= 7; i++) {

new Thread(() -> {

try {

System.out.println(Thread.currentThread().getName()+” 星龙珠被收集 “);

cyclicBarrier.await();

} catch (InterruptedException | BrokenBarrierException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}, String.valueOf(i)).start();

}

}

}

想要了解更多关于Java技术内容欢迎关注尚硅谷教育!

Java 的抽象类是什么

java之数据格式化

java技术事务的传播行为

Java 数据结构都有哪些

java中单例设计模式

展开阅读全文

页面更新:2024-03-15

标签:栅栏   神龙   硅谷   数据结构   字面   屏障   线程   程序代码   原理   事情   作用   事务   模式   方法   技术   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top