CompletableFuture的thenCombineAsync

简介: CompletableFuture的thenCombineAsync代码:private void test() { System.

CompletableFuture的thenCombineAsync

代码:

private void test() {
    System.out.println("开始...");

    CompletableFuture.supplyAsync(new Supplier<String>() {
        @Override
        public String get() {
            try {
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            System.out.println("返回 zhang");
            return "zhang";
        }
    }).thenCombineAsync(CompletableFuture.supplyAsync(new Supplier<String>() {
        @Override
        public String get() {
            try {
                TimeUnit.SECONDS.sleep(3);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            System.out.println("返回 phil");
            return "phil";
        }
    }), new BiFunction<String, String, Object>() {
        @Override
        public Object apply(String s1, String s2) {
            String s = s1 + " , " + s2;
            System.out.println("apply:" + s);
            return s;
        }
    }).whenCompleteAsync(new BiConsumer<Object, Throwable>() {
        @Override
        public void accept(Object o, Throwable throwable) {
            System.out.println("accept:" + o.toString());
        }
    });

    System.out.println("运行至此.");
}

运行输出:

07-10 16:12:37.230 29410-29410/zhangphil.test I/System.out: 开始...
07-10 16:12:37.235 29410-29410/zhangphil.test I/System.out: 运行至此.
07-10 16:12:38.234 29410-29450/zhangphil.test I/System.out: 返回 zhang
07-10 16:12:40.236 29410-29451/zhangphil.test I/System.out: 返回 phil
07-10 16:12:40.237 29410-29451/zhangphil.test I/System.out: apply:zhang , phil
07-10 16:12:40.237 29410-29450/zhangphil.test I/System.out: accept:zhang , phil

相关文章
|
机器学习/深度学习 数据采集 人工智能
机器学习基础知识——基本原理、常用算法与评估指标
机器学习基础知识——基本原理、常用算法与评估指标
2513 0
|
安全 JavaScript Java
SpringBoot实现定时发送邮件
SpringBoot实现定时发送邮件
471 0
|
3月前
|
API
车型库查询-车型大全-车系大全-车型识别-汽车标志-车型车系-汽车品牌API接口介绍
本API提供全量车型库查询服务,支持按品牌→车系→车型三级检索,覆盖比亚迪、宝马等主流品牌及年款、排量、驱动、环保标准、指导价、配置参数等字段,广泛应用于汽车销售、保险与维修场景。
336 0
|
2月前
|
人工智能 数据挖掘 调度
新版 阿里云百炼 Token Plan 功能介绍,助力 AI 生产力,全模型通用节省计划直省 55%
随着AI大模型从试用探索走向规模化商用落地,个人开发者、自媒体创作者、政企研发团队普遍面临**多模型计费混乱、按量账单不可控、高峰算力溢价高、批量调用成本暴涨**等痛点。传统大模型按量计费模式下,不同模型单价差异大、多工具调用对账繁琐、高频量产算力成本居高不下,极大制约AI自动化工作流、智能体长效挂机、多媒体内容量产、工程级代码迭代的规模化落地。
252 0
|
8月前
|
缓存 Ubuntu Linux
Linux 源配置不用慌!CentOS/Ubuntu 源更新(含恢复)+Yum 操作 + Vim 入门
本教程详解CentOS与Ubuntu系统软件源配置及更新方法,涵盖源备份、更换国内镜像、错误恢复技巧,并介绍Yum常用命令与Vim基础操作,助Linux新手轻松掌握系统维护核心技能。
|
7月前
|
应用服务中间件 Shell nginx
最全的docker命令参数解释及命令用法
本文系统详解Docker核心命令,涵盖容器(run/exec/ps/start/stop等)、镜像(pull/build/push/rmi等)、网络、数据卷及全局参数,并配实操示例与可直接执行的命令,助初学者快速掌握Docker日常运维与开发应用。
2217 129
|
8月前
|
缓存
CentOS8.5换源全攻略(从报错到搞定,小白也能看懂)
本文详解CentOS8.5更换yum源全过程,针对常见报错提供解决方案。通过备份原文件、配置阿里云等国内镜像源,快速解决软件下载慢、元数据获取失败等问题,提升系统性能。步骤清晰,小白也能轻松完成换源操作,确保系统稳定高效运行。(238字)
|
缓存 IDE Java
maven install报错原因揭秘:‘parent.relativePath‘指向错误的本地POM文件
在使用Maven构建项目时,遇到&#39;parent.relativePath&#39;错误通常是由于父项目POM路径设置错误、版本不一致或内容不匹配导致的。解决方法包括:校正父项目POM的相对路径、确保版本一致、保持POM文件内容同步,并排查其他潜在问题,如子模块命名冲突和Maven缓存问题。通过这些步骤可解决该错误,避免项目构建失败。
maven install报错原因揭秘:‘parent.relativePath‘指向错误的本地POM文件
|
存储 Java Docker
使用Docker部署Java应用的最佳实践
使用Docker部署Java应用的最佳实践
1029 0
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
1012 64