开发者社区> 开开心心过> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
CompletableFuture调用OpenFegin,谁用谁傻
当调用FeignBlockdingloadBalancerClient使用并行流(多线程)会有问题。
0 0
CompletableFuture学习
前面我们已经知道CompletionService是可以解决Future带来的阻塞问题的,同时我们除了前面我们看到的take方法之外,还可以使用poll方法,这样可以使你的程序免受阻塞之苦。因为poll方法也是无阻塞性的。同时在kafka的源码中,我们如果使用消费者的话,可以看到会使用一个基于future的poll方法。同时我们可以在dubbo的新版本2.7中,可以看到其异步编程采用的就是我们要介绍的CompletableFuture。因此,我们有必要了解CompletableFuture,同时其也是真正意义上的异步编程的实现。
0 0
CompletableFuture
CompletableFuture
0 0
JUC(一)异步调用CompletableFuture
JUC(一)异步调用CompletableFuture
0 0
多线程之 completableFuture
Callable与Runnable的功能大致相似,但是call()函数有返回值. Callable一般是和ExecutorService配合来使用的
0 0
CompletableFuture 使用介绍
CompletableFuture 使用介绍
0 0
CompletableFuture的runAsync
CompletableFuture的runAsync CompletableFuture的runAsync只是简单的异步执行一个线程,但是它将返回一个CompletableFuture,有了这个CompletableFuture,可以重新组装和调配,这是和一个普通Runnable不同之处。
1850 0
CompletableFuture的exceptionally
CompletableFuture的exceptionally 代码: private void test() { System.
1454 0
CompletableFuture的runAfterBothAsync
CompletableFuture的runAfterBothAsync runAfterBothAsync:假设有两个线程A和B,这两个线程都是异步执行的,但是不确定A和B何时执行完毕,但是需要在A和B都执行完毕后运行线程C。
854 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载