首页 > 其他 > 详细

CyclicBarrier用法

时间:2021-06-22 09:17:41      阅读:19      评论:0      收藏:0      [点我收藏+]

CyclicBarrier是所有线程都到了指定的个数,才开始执行下边的代码。

public class CyclicBarrierDemo {
	
//	private static String[] arr = {"小王","小张","小李","小赵","小丽","小陈","小孙","小郭","小吴","小钱"};
	private static String[] arr = {"小王","小张","小李","小赵","小丽"};

	public static void main(String[] args)throws Exception{
		changjing();
	}

	public static void changjing()throws Exception{
		CyclicBarrier cyclicBarrier = new CyclicBarrier(5,new Runnable() {
	        @Override
	        public void run() {
	            System.out.println("5人已来,可以开席了");
	        }
	    });
		for (int i = 0; i < 10; i++) {
			final int index = i;
			Thread.sleep(1000);
			new Thread(()->{
				try {
					System.out.println(arr[index] + "要来了");
					cyclicBarrier.await();
					System.out.println(arr[index] + "开始吃了");
				} catch (Exception e) {
					
				}
			},"线程" + i).start();
		}
	}
}
  • 输出的结果(5个人都执行到了await方法,然后就可以执行run方法了,之后就可以执行之后的代码了)
小王要来了
小李要来了
小赵要来了
小张要来了
小丽要来了
5人已来,可以开席了
小丽开始吃了
小王开始吃了
小赵开始吃了
小张开始吃了
小李开始吃了

参考博客:
https://zhuanlan.zhihu.com/p/265530418

CyclicBarrier用法

原文:https://www.cnblogs.com/kaka-qiqi/p/14916263.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!