From 804ceba0078d4aa91313c22c683e16f23ff41926 Mon Sep 17 00:00:00 2001 From: TS-QD1 Date: Sun, 26 Nov 2023 22:20:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=A4=9A=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/population/impl/PopulationServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) 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) {