Java并发多线程编程——CyclicBarrier
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java并发多线程编程——CyclicBarrier相关的知识,希望对你有一定的参考价值。
一、CyclicBarrier概述
- CyclicBarrier的字面意思是可循环(Cyclic) 使用的屏障(barrier)。
- CyclicBarrier让一组线程到达一个屏障(也可以叫做同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。
- 线程进入屏障通过CyclicBarrier的await()方法。
二、CyclicBarrier代码示例
模拟淘宝集齐5种福卡,坐等开奖案例
-
代码
import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; /** * @description: 模拟淘宝集齐5种福卡,坐等开奖案例 * @author: xz */ public class CyclicBarrierDemo public static void main(String[] args) collectCard(); private static void collectCard() CyclicBarrier cyclicBarrier=new CyclicBarrier(5,()-> System.out.println("五种卡片已集齐,坐等开奖"); ); for (int i = 1; i <=5; i++) final int temp = i; new Thread(()-> System.out.println("线程"+Thread.currentThread().getName()+"\\t 收集到第"+ temp +"种福卡"); try cyclicBarrier.await(); catch (InterruptedException e) e.printStackTrace(); catch (BrokenBarrierException e) e.printStackTrace(); ,String.valueOf(i)).start();
-
输出结果如下图:
以上是关于Java并发多线程编程——CyclicBarrier的主要内容,如果未能解决你的问题,请参考以下文章
JAVA并发编程揭开篇章,并发编程基本认识,了解多线程意义和使用