场景1 多线程处理列表
定义线程池
private static final ExecutorService executorService = Executors.newFixedThreadPool(15); // 创建一个固定大小为15的线程池
使用
List<IkmDatasetAddKnowledgeVO> ikmKbaseKnowledgeVOS = new ArrayList<>();
IkmDatasetTaskAddVO ikmDatasetTaskVO = addTask(queryVO[0]);
getTaskList(ikmDatasetTaskVO, ikmKbaseKnowledgeVOS);
if (ikmDatasetTaskVO != null && ikmDatasetTaskVO.getTotalPage() >1) {
CountDownLatch countDownLatch = new CountDownLatch(ikmDatasetTaskVO.getTotalPage()-1);
for (int i = 1; i <ikmDatasetTaskVO.getTotalPage(); i++) {
int finalI = i;
executorService.submit(new Runnable() {
@Override
public void run() {
try {
IkmDatasetTaskFilesQueryVO finalQuery=new IkmDatasetTaskFilesQueryVO();
finalQuery.setPage(finalI);
finalQuery.setTaskId(queryVO[0].getTaskId());
finalQuery.setTaskGroupId(queryVO[0].getTaskGroupId());
IkmDatasetTaskAddVO ikmDatasetTaskVO = addTask(finalQuery);
getTaskList(ikmDatasetTaskVO, ikmKbaseKnowledgeVOS);
} catch (Exception ex) {
log.error("获取任务信息异常", ex);
} finally {
countDownLatch.countDown();
}
}
});
}
countDownLatch.await();
}

被折叠的 条评论
为什么被折叠?



