我是靠谱客的博主 留胡子手套,这篇文章主要介绍springboot任务并行执行+线程池(二),现在分享给大家,希望可以做个参考。

将Future用CompletableFuture替换

@PostMapping("/findInfo")
public Map<String, Object> findInfo() {
    Map<String, Object> map = new HashMap<>();
    CompletableFuture<List<User>> userFuture = CompletableFuture.supplyAsync(() -> {
        return userService.findUser("fc1fb15c04545");
    }, executorService).whenComplete((r, e) -> {  //如果要有返回值,将whenComplete变为handler
        if (null == e) {
            map.put("user", r);
        }
    });

    CompletableFuture<List<Dept>> deptFuture = CompletableFuture.supplyAsync(() -> {
        return deptService.findDept("b7ae417cfde038");
    }, executorService).whenComplete((r, e) -> {
        if (null == e) {
            map.put("dept", r);
        }
    });

    CompletableFuture<Company> companyFuture = CompletableFuture.supplyAsync(() -> {
        return companyService.findCompany("admin");
    }, executorService).whenComplete((r, e) -> {
        if (null == e) {
            map.put("company", r);
        }
    });

    //等待所有任务执行完成
    CompletableFuture.allOf(userFuture, deptFuture, companyFuture).join();
    return map;
}

最后

以上就是留胡子手套最近收集整理的关于springboot任务并行执行+线程池(二)的全部内容,更多相关springboot任务并行执行+线程池(二)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(99)

评论列表共有 0 条评论

立即
投稿
返回
顶部