设备接入调整
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package com.njcn;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
public class BatchProcessing {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 创建包含10000条数据的列表
|
||||
List<Integer> dataList = new ArrayList<>();
|
||||
for (int i = 1; i <= 20000; i++) {
|
||||
dataList.add(i);
|
||||
}
|
||||
|
||||
// 将数据分成10个子列表,每个子列表包含1000条数据
|
||||
List<List<Integer>> batches = new ArrayList<>();
|
||||
int batchSize = 1000;
|
||||
int batchCount = dataList.size() / batchSize;
|
||||
for (int i = 0; i < batchCount; i++) {
|
||||
int fromIndex = i * batchSize;
|
||||
int toIndex = fromIndex + batchSize;
|
||||
List<Integer> batch = dataList.subList(fromIndex, toIndex);
|
||||
batches.add(batch);
|
||||
}
|
||||
|
||||
// 使用多线程并发处理每个子列表
|
||||
ExecutorService executorService = Executors.newFixedThreadPool(10);
|
||||
for (List<Integer> batch : batches) {
|
||||
executorService.submit(() -> processBatch(batch));
|
||||
}
|
||||
executorService.shutdown();
|
||||
}
|
||||
|
||||
private static void processBatch(List<Integer> batch) {
|
||||
for (Integer data : batch) {
|
||||
// 处理数据的逻辑
|
||||
System.out.println(Thread.currentThread().getName() + ": processing data " + data);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user