Springboot任务之异步任务的使用详解

 更新时间:2021年06月07日 16:31:12   作者:Z && Y  
今天学习了一个新技能SpringBoot实现异步任务,所以特地整理了本篇文章,文中有非常详细的介绍及代码示例,需要的朋友可以参考下

02: 定时任务

03: 邮件任务

一、SpringBoot--异步任务

 1.1 什么是同步和异步

  • 同步是阻塞模式,异步是非阻塞模式。
  • 同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会—直等待下去,知道收到返回信息才继续执行下去
  • 异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回式系统会通知进程进行处理,这样可以提高执行的效率。

1.2 Java模拟一个异步请求(线程休眠)

在这里插入图片描述

AsyncService.java

package com.tian.asyncdemo.service;

import org.springframework.stereotype.Service;

@Service
public class AsyncService {
    public void hello() {
        try {
            System.out.println("数据正在处理");
            Thread.sleep(3000);
            System.out.println("数据处理完成");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

在这里插入图片描述

AsyncController.java

package com.tian.asyncdemo.controller;

import com.tian.asyncdemo.service.AsyncService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * ClassName: AsyncController
 * Description:
 *
 * @author Administrator
 * @date 2021/6/6 19:48
 */
@RestController
public class AsyncController {
    @Autowired
    AsyncService asyncService;

    @RequestMapping("/hello")
    public String hello() {
        asyncService.hello();
        return "OK";
    }
}

运行结果:

在这里插入图片描述

1.3 使用异步

在Service的方法中使用@Async说这是一个异步方法,并在主入口上使用@EnableAsync开启异步支持

在这里插入图片描述

AsyncService.java

@Service
public class AsyncService {
    @Async
    public void hello() {
        try {
            System.out.println("数据正在处理");
            Thread.sleep(3000);
            System.out.println("数据处理完成");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

主入口上使用@EnableAsync开启异步支持

在这里插入图片描述

再次测试:

在这里插入图片描述

到此这篇关于Springboot任务之异步任务的使用详解的文章就介绍到这了,更多相关SpringBoot异步任务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot配置security basic path无效解决方案

    Springboot配置security basic path无效解决方案

    这篇文章主要介绍了Springboot配置security basic path无效解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • ArrayList和JSONArray边遍历边删除到底该如何做

    ArrayList和JSONArray边遍历边删除到底该如何做

    这篇文章主要介绍了ArrayList和JSONArray边遍历边删除到底该如何做,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • MyBatis流式查询的三种实现方法

    MyBatis流式查询的三种实现方法

    流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果,本文介绍了MyBatis流式查询的实现,感兴趣的可以了解一下
    2021-05-05
  • java实用验证码的实现代码

    java实用验证码的实现代码

    这篇文章主要为大家介绍了java实用验证码的实现代码,验证码实际上就是随机选择一些字符以图片的形式展现在页面上,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 金三银四复工高频面试题java算法LeetCode396旋转函数

    金三银四复工高频面试题java算法LeetCode396旋转函数

    这篇文章主要为大家介绍了金三银四复工高频面试题之java算法题解LeetCode396旋转函数,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 浅谈Java读写注册表的方式Preferences与jRegistry

    浅谈Java读写注册表的方式Preferences与jRegistry

    这篇文章主要介绍了浅谈Java读写注册表的方式Preferences与jRegistry,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • SpringBoot集成iTextPDF的实例

    SpringBoot集成iTextPDF的实例

    SpringBoot集成iTextPDF时,创建PDF文档涉及Document、PdfPTable和PdfPCell对象,设置文档大小和页边距,使用Paragraph设置段落样式,并通过Table和Cell控制表格样式和对齐,还可加入图片美化文档,这些步骤对于生成具有中文内容的PDF文件至关重要
    2024-09-09
  • 关于JFormDesigner的安装及破姐超详细教程

    关于JFormDesigner的安装及破姐超详细教程

    JFormDesigner是一种先进的图形用户界面Swing 的设计工具(非开源),具有一个独立的开发工具产品和基于不同开发工具如Eclipse、NetBeans等的开发插件,本文给大家介绍JFormDesigner安装破解教程,感兴趣的朋友一起看看吧
    2023-12-12
  • 精通Java泛型的使用与原理

    精通Java泛型的使用与原理

    针对利用继承来实现通用程序设计所产生的问题,泛型提供了更好的解决方案,本文详细的介绍了Java泛型的使用与原理,感兴趣的可以了解一下
    2022-03-03
  • Java GUI制作简单的管理系统

    Java GUI制作简单的管理系统

    这篇文章主要为大家详细介绍了Java GUI制作简单的管理系统的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01

最新评论