异步任务_SpringBoot中级教程之Asyn异步任务

异步编程

异步常用来处理对性能要求比较高的应用,通过减少阻塞,增加并行查询,来提高性能。其实实现异步任务也非常的简单,在Java中也有原生的API。本篇文章教你如何在SpringBoot项目下,优雅方便的使用异步编程。

异步任务实现其实就是利用submit,来提交任务,通过线程池的方式来异步执行。

f0f12cbd29319c140000b2462e550fa2.png

但是一般使用的时候,需要我们自己去创建线程执行器.如下:

f3f262b11853640f9083bf6866ab6d67.png

将不需要同步返回的逻辑,使用异步线程来处理,然后先执行其他逻辑(在执行其他逻辑时候,异步任务其实在后台执行),这样就达到了并行的目的,提高了代码的执行效率。这是最常规的操作,但是我们看到我们需要自己去创建线程池,也要自己去实现Runnable接口。这样的方式是最常见的使用方式,下面我们看SpringBoot如何来简化。

什么场景适合异步?

  1. 业务流程查询或者执行,不需要同步立马获取返回值或者立马执行完成
  2. 具有一个或以上的并行执行(效果提升会更加明显)

当具有以上两个特性的时候,毫无疑问是非常适合异步来处理的,这样能大大的提高执行效率和执行时间。

SpringBoot带来了更简单的方式

SpringBoot来如何简化操作呢? 在SpringBoot中开发者不需要自己来实现Runnable接口,只要在任何的bean中使用@Asyn注解就可以实现。就和前面一样能带来性能提高。当然前提是要适合自己的业务场景。适合自己的才是最好的。

使用方法

90747984582c9b1b238741f4a206e766.png

在每个方法中都睡眠1s,当并行查询时候三个方法最好的情况是一起执行。因此三个方法同时调用最好情况只会耗时1s。而假如不使用异步,三个方法调用,只有一种情况就是,按照调用先后顺序执行,耗时最少是3s。

该say,方法使用Spring的@Async注释进行标记,表明它将在单独的线程上运行。

f012d0d0082f2fc61c3603eb43b67364.png

获取本课程代码请关注头条号: 软件编程指南 ,私信: 007

更多了解可以点击小编博客: https://blog.springlearn.cn/posts/4135/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值