diff --git a/src/main/java/com/cm/population/service/population/impl/PopulationServiceImpl.java b/src/main/java/com/cm/population/service/population/impl/PopulationServiceImpl.java index a015e91..dc0d356 100644 --- a/src/main/java/com/cm/population/service/population/impl/PopulationServiceImpl.java +++ b/src/main/java/com/cm/population/service/population/impl/PopulationServiceImpl.java @@ -470,11 +470,14 @@ public class PopulationServiceImpl extends AbstractService implements IPopulatio List populationInfoBaseDTOs = new ArrayList<>(); int size = populationInfoIds.size(); int numThreads = size / 2 + (size % 2 == 0 ? 0 : 1); // 计算需要的线程数 + numThreads = numThreads == 0 ? 1 : numThreads; + ExecutorService executorService = Executors.newFixedThreadPool(numThreads); List>> futures = new ArrayList<>(); // 将populationInfoIds分割成多个子列表,每个子列表由一个任务处理 int chunkSize = (int) Math.ceil((double) populationInfoIds.size() / numThreads); + chunkSize = chunkSize == 0? 1 : chunkSize; List> chunks = Lists.partition(populationInfoIds, chunkSize); for (List chunk : chunks) {