其中list有几十万条数据
public void saveData(Auth auth, List<DataCenterTag> list) {
//启动多线程,一次200条纪录
int size = list.size() / AMOUNT;
if (size == 0) {
saveList(auth, list);
return;
}
CountDownLatch latch = new CountDownLatch(size);
ExecutorService service = Executors.newFixedThreadPool(size);
for (int i = 0; i < size; i++) {
List<DataCenterTag> executeList = list.subList(i * AMOUNT, (i + 1) * AMOUNT);
service.submit(() -> {
try {
saveList(auth, executeList);
} finally {
latch.countDown();
}
});
}
saveList(auth, list.subList(size * AMOUNT, list.size()));
try {
latch.await();
} catch (InterruptedException e) {
log.error("标签导入线程池中断异常");
}
service.shutdown();
}