提升 Spring Boot 吞吐量的 7 个神技,让你的项目飞起来!

9b7cbe9e0169cb3d07e7c5882b5f78cf.png

若有收获,请记得分享和转发哦

一、异步执行

实现方式二种:

@AllArgsConstructor
public class AskThread implements Runnable{
    private CompletableFuture<Integer> re = null;

    public void run() {
        int myRe = 0;
        try {
            myRe = re.get() * re.get();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(myRe);
    }

    public static void main(String[] args) throws InterruptedException {
        final CompletableFuture<Integer> future = new CompletableFuture<>();
        new Thread(new AskThread(future)).start();
        //模拟长时间的计算过程
        Thread.sleep(1000);
        //告知完成结果
        future.complete(60);
    }
}

在该示例中,启动一个线程,此时 AskThread 对象还没有拿到它需要的数据,执行到 myRe = re.get() * re.get() 会阻塞。

21b73ae4829414d9a5bd54d4a792b307.png

ffba6aa702b83fa918143ce37d43eec7.png

2994df3b71baa6c505f7c74bf3944bde.png

4ef8fe9b762d8dc785d13ac6ddd26225.png

d192a1b03ca89b5697af9d5ccd6a52ba.png

13539db9c1f6b378ab600db98d21518e.png

f8b15327b72e20101eb2db5996983ff3.png

b46be02c75cd43ae4f49de5623149e9b.png

ecb047a5d56c5292007cd90baa9bfc34.png

8e7452a5de40f08b8cc5f315c66e7da8.png

e884117834234f9f769a6819548c3acd.png

f16ac8372249d4bb548e5b657e16357c.png

9b3a922fb8650bea70bc082cf97b95cb.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值