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并发编程揭开篇章,并发编程基本认识,了解多线程意义和使用

❤️java多线程并发编程入门 教程合集❤️

Java并发编程:多线程与并发原理回顾

最全Java并发编程技能:多线程+线程池+线程锁+并发工具+并发容器

Java多线程视频教程并发编程面试知识

java多线程 并发 编程