JUC —— 循环阑珊 CyclicBarrier

package com.pengshi.ThreadTest;

import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;

/**
 * @description: CyclicBarrier 辅助类的理解与使用 循环阑珊 —— 循环阻塞
 * 一个同步辅助类,它允许一组线程互相等待,知道某个公共屏障点
 * 构造方法:
 *	public CyclicBarrier(int parties)
 *	public CyclicBarrier(int parties, Runnable barrierAction) 第二 Runnable线程定义的多一个线程,进行 parties 个 线程运行完毕
 *	后进行 这个线程 的运行
 *
 * 	其实就是定义 一个 允许 阻塞 parties 个线程的 保安,阻塞到 parties 个线程后,放行  barrierAction 的方法线程,最后释放 被阻塞的
 * 	parties 个线程
 *
 * @projectName: Algorithm
 * @see: com.pengshi.ThreadTest
 * @author: pc
 * @createTime: 2022/2/26 14:16
 * @version: 1.0
 */
public class CyclicBarrierTest {

	private static int number = 7;
	public static void main(String[] args) {
		CyclicBarrier cyclicBarrier = new CyclicBarrier(number, () -> {
			System.out.println("循环结束");
		});

		for (int i = 0; i < 7; ++i) {
			new Thread(() -> {
				try {
					System.out.println(Thread.currentThread().getName() + "加油");
					cyclicBarrier.await();
					System.out.println(Thread.currentThread().getName() + "塞住了");
				} catch (BrokenBarrierException e) {
					e.printStackTrace();
				} catch (InterruptedException e) {
					e.printStackTrace();
				}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pengshi12138

加油加油

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值