多线程任务新jdk8写法

发布时间 2023-08-02 12:30:31作者: 追风fc
List uniqueList = groupIds.stream().distinct().collect(Collectors.toList());
// 分组后的list
List<List<String>> groupedIdList = Lists.partition(uniqueList, 10);
List<CompletableFuture<ResultBody<List<TyGroupVo>>>> futureList =
    groupedIdList.stream().map(v -> CompletableFuture.supplyAsync(() -> {
        ApplicationContextHelper.setApplicationContextUser();
        return queryTyGroupList(v);
    }, ThreadPoolFactory.executor)).collect(Collectors.toList());
// 确保所有的任务完成
List<ResultBody<List<TyGroupVo>>> resultBeanList =
    futureList.stream().map(CompletableFuture::join).collect(Collectors.toList());