此为java1.7之后对多线程进行分批处理的API
如:n个线程访问,从中截取m个线程为一组(构造参数设置)进行对应操作,如果该组线程不够,那么集体等待。
可用于多线程计算数据,最后合并计算结果的场景
package com.hezhanghuaixiao.apipaaenger.learn;
import java.util.concurrent.CyclicBarrier;
/**
* @author 何章怀晓 hezhanghuaixiao
* @version V1.0
* @desc
*/
public class Test0424CyclicBarrier {
static int num = 1;
static CyclicBarrier cyclicBarrier = new CyclicBarrier(20, new Runnable() {
@Override
public void run() {
System.out.println("action !!" + "第" + num++ + "批次");
}
});
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
Thread thread = new Thread(() -> {
try {
cyclicBarrier.await();
} catch (Exception e) {
e.printStackTrace();
}
});
thread.start();
}
}
}