CyclicBarrier类的使用
package com.example.demo;
import java.util.concurrent.CyclicBarrier;
/**
* Created by Administrator on 2020/7/6.
* CyclicBarrier计数器加法
* CyclicBarrier的字面意思就是可循环使用的屏障,
* 他要做的事情是,让一组线程达到一个屏障(也
* 可以叫同步点)时被阻塞,直到最后一个线程达到屏障时,
* 屏障才会开门,所以被屏障拦截的线程才会继续干活,线程进入屏障通过CyclicBarrier
* 的await()方法。
*
* @author qtx
*/
public class CyclicBarrierDemo {
public static void main(String[] args) {
CyclicBarrier cyclicBarrier = new CyclicBarrier(5, () -> {
System.out.println("全部离开");
});
for (int i = 1; i <= 5; i++) {
new Thread(() -> {
System.out.println(Thread.currentThread().getName() + "\t离开了");
try {
cyclicBarrier.await();
} catch (Exception e) {
e.printStackTrace();
}
}, CountEnum.getCountEnum(i).getMessage()).start();
}
}
}