1 需求
将一个数据量很大的集合,异步分批进行处理,然后再把每批数据进行整合
2 代码示例
public class BatchTest {
// 定义每批处理的数量
private static final int BATCH_SIZE = 3;
// 定义总数
private static final int TOTAL_SIZE = 10;
public static void main(String[] args) {
// 创建一个大小为总数据量(TOTAL_SIZE)的数据集合
List<Integer> dataList = new ArrayList<>();
for (int i = 1; i <= TOTAL_SIZE; i++) {
dataList.add(i);
}
// 总批次
int totalPageCount = (dataList.size() % BATCH_SIZE == 0) ? dataList.size() / BATCH_SIZE : dataList.size() / BATCH_SIZE + 1;
System.out.println("总批次为:" + totalPageCount + "次");
// 创建一个异步任务集合
List<CompletableFuture<List<Integer>>> futures = new ArrayList<>();
// 进行批次处理
for (int i = 0; i < totalPageCount; i&