List<Future> futures = Lists.newArrayList(); parts.forEach(part -> { Future future = executor.submit((Callable) () -> { // 在这里执行每个分段的任务 List codes = CollStreamUtil.toList(part, T::getCode); List exists; LambdaQueryWrapper query = getQueryWrapper(); query.in(T::getCode, codes); List dbList = mapper.selectList(query); if (CollUtil.isNotEmpty(dbList)) { exists = CollStreamUtil.toList(dbList, T::getCode); for (String code : exists) { part.removeIf(it -> code.equals(it.getCode())); } } int count = 0; for (T it : part) { count += mapper.insert(it); } return count; }); futures.add(future); });

// 获取所有分段任务的结果 List results = new ArrayList<>(); for (Future future : futures) { try { Integer result = future.get(); results.add(result); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } }

// 打印最后结果 System.out.println(results)

以上代码补充 异步得到最后的结果 ListListT parts = Listspartitionlist 3; ListFutureInteger futures = ListsnewArrayList; partsforEachpart - FutureInteger future = executorsubmitCallableIntege

原文地址: https://www.cveoy.top/t/topic/ivHk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录