CompletableFuture优化代码!展示飞一般的速度

本文深入探讨了Java中的CompletableFuture,解释了同步与异步的区别,并展示了如何利用CompletableFuture进行高效的异步编程。文章通过实例演示了串行流和并行流的使用,详细介绍了exceptionally和allOf方法,以及join方法的特性。同时,讨论了在使用CompletableFuture时需要注意的阻塞问题,并给出了自定义线程池的建议,以最大化CPU利用率。
摘要由CSDN通过智能技术生成

CompletableFuture异步编程


前言

基础讲解:同步和异步

同步:提交请求->等待服务器处理->处理完返回 期间客户端浏览器等待

异步:请求通过事件触发->服务器处理(无需等待)->处理完毕


提示:以下是本篇文章正文内容,下面案例可供参考

一、CompletableFuture运算范式

在这里插入图片描述

二、RemoteLoader.Java

代码如下(示例):

2.1 、LabelService.JAVA

在这里插入图片描述

三、Test

串行流示例

3.1五个调用五个接口!延时1秒

在这里插入图片描述

并行流示例

在这里插入图片描述

四、CompletableFuture基本使用

  CompletableFuture<String> future = new CompletableFuture<>();
        new Thread(() -> {
   
            try {
   
                future.complete("Finish");  //任务执行完成后 设置返回的结果
            } catch (Exception e) {
   
                log.error("CompletableFuture -> 任务线程出现异常", e);
            }
        }).start();
        System.out.println(future.join());       //获取任务线程返回的结果

4.1、exceptionally方法

4.1.1、exceptionally -> 回调异常处理

4.1.1.2、示例
  /*Java8不仅提供允许任务返回结果的sup
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值