SpringBoot整合、SpringBoot与异步任务

目录

    • 一、背景描述
    • 二、简单使用方法
    • 三、原理
    • 五、使用自定义线程池
    • 六、@Async失效情况

一、背景描述

java 的代码是同步顺序执行,当我们需要执行异步操作时我们通常会去创建一个新线程去执行。比如new Thread()。start(),或者使用线程池线程池 new ThreadPoolExecutor().execute 。

在 Springboot 中对其进行了简化处理,使用@EnableAsync + @Async 可以快速开启一个异步线程执行任务

二、简单使用方法

启动类上使用 @EnableAsync ,开启异步任务支持

@EnableAsync
@SpringBootApplication
public class TaskMain {public static void main(String[] args) {SpringApplication.run(TaskMain.class,args);}
}

在需要异步执行的方法上添加注解 @Async

   @GetMapping("hello")public String hello(){asyncService.hello();System.out.println(new Date() + "success");return "ok";}@Asyncpublic void hello() {System.out.println(new Date() + "  " + Thread.currentThread().getName() + Thread.currentThread().getId());try {Thread.sleep(6000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(new Date() + "  " + Thread.currentThread().getName() + Thread.currentThread().getId() + "---->处理end");}

测试 Jemeter同时发送两个请求
在这里插入图片描述

三、原理

【看不太懂,之后再进行整理吧】

五、使用自定义线程池

@Async默认使用的是 SimpleAsyncTaskExecutor , execute时,直接new Tread来执行该任务
在这里插入图片描述

六、@Async失效情况

同一个类中,一个方法调用 @Async标注的方法

@Service
public class AsyncDemoImpl implements AsyncDemo {// 注入spring上下文@Autowiredprivate ApplicationContext applicationContext;@Overridepublic void a() {System.out.println("开始执行a(): " + TimeUtil.getStringDate());// 通过上下文获取该类的实例,再调用该实例方法AsyncDemo asyncDemo = applicationContext.getBean(AsyncDemo.class);asyncDemo.b();System.out.println("执行结束a(): " + TimeUtil.getStringDate());}@Async@Overridepublic void b() {System.out.println("开始执行b(): " + TimeUtil.getStringDate());try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("执行结束b(): " + TimeUtil.getStringDate());}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1379713.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

stm工程文件夹

STM32工程文件构成 从下图可以看出我们的工程目录是由CORE、OBJ、STM32F10x_FWLib、USER、SYSTEM以及HARDWARE文件夹组成的。此外还有一个文本文档README.TXT、以及一个Windows 批处理文件 (.bat)keilkilll.bat。 1、CORE文件夹 CORE文件夹下一共有三个文件,它们分…

STL文件及其读取

1引言 STL(Stereo lithographic)文件格式是美国3D SYSTEMS公司提出的三维实体造型系统的一个接口标准,其接口格式规范。采用三角形面片离散地近似表示三维模型,目前已被工业界认为是快速成形(rapid prototypi ng)领域的标准描述文件格式。在逆向工程、有…

Python-OpenCV中的图像处理-直方图

Python-OpenCV中的图像处理-直方图 直方图统计直方图绘制直方图Matplotlib绘制灰度直方图Matplotlib绘制RGB直方图 使用掩膜统计直方图直方图均衡化Numpy图像直方图均衡化OpenCV中的直方图均衡化CLAHE 有限对比适应性直方图均衡化 2D直方图OpenCV中的2D直方图Numpy中2D直方图 直…

基于frida检测demo来学习frida检测及anti

原文地址:https://www.zhuoyue360.com/crack/108.html 前言 随着逆向的攻防强度不断的提升,目前主流的移动安全厂商的加固服务基本上都已包含了常见Hook框架的反调试,我们最常见的hook工具如下: fridaxposed 为了更好的提升自己相关的经验,我们可以拿这类demo来进行原理的学…

腾讯云轻量应用服务器镜像应用模板清单大全

腾讯云轻量应用服务器支持多种应用模板镜像,Windows和Linux镜像模板都有,如:宝塔Linux面板腾讯云专享版、WordPress、WooCommerce、LAMP、Node.js、Docker CE、K3s、宝塔Windows面板和ASP.NET等应用模板镜像,腾讯云服务器网分享腾…

聊一下互联网开源变现

(点击即可收听) 互联网开源变现其实是指通过开源软件或者开放源代码的方式,实现收益或盈利。这种方式越来越被广泛应用于互联网行业 在互联网开源变现的模式中,最常见的方式是通过捐款、广告、付费支持或者授权等方式获利。 例如,有些开源软件…

Linux 基础(五)常用命令-文件属性

文件属性 文件权限文件属性修改文件权限属性 文件所有者 文件权限 文件属性 Linux中文件权限 可以通过文件属性体现; 使用 ll 查看文件列表 最前面的 l d 表示文件类型 1 5 表示硬链接数 或者 子文件夹个数 所属用户 所属用户组 文件大小 创建/更新时间 文件&…

首个女性向3A手游要来了?获IGN认可,《以闪亮之名》能否突出重围

最近的手游市场可以说是热度十足,各大厂商都发布了旗下新作的消息,3A高自由度似乎成了所有新游的主基调,但说起与众不同,那便不得不说这款《以闪亮之名》,这是本季度新游中唯一一个女性向3A作品。 这款手游主打超自由时…

2009年“五一”假期市民旅游指南

信息来源于:上海旅游官网 为使广大市民更好地领略上海的都市风情,满足 市民的旅游消费需求,丰富节日生活 ,本市部分景点 、旅游企业 精心策划,积极准备,推出一系列适合市民市内旅游的节目,在…

常州嬉戏谷游玩全攻略

攻略导读:常州环球动漫嬉戏谷,一座国际动漫游戏体验博览园,颠覆传统,突破创新,定位鲜明,以满足逾4亿中国互联网用户的庞大娱乐需求为目标,以更适合未来前往的体验型公园为前瞻。假面文化的“梦幻…

第四十八周周报

学习目标: 修改ViTGAN 学习内容: 位置编码和多尺度 学习时间: 8.5-8。12 学习产出: 这两周主要工作在修改ViTGAN的结构和代码,将相对位置编码加入ViTGAN并将生成器变为多尺度,由于匹配维度很困难&am…

Jpa与Druid线程池及Spring Boot整合(二): spring-boot-starter-data-jpa 踏坑异常处理方案

Jpa与Druid线程池及Spring Boot整合(一) Jpa与Druid线程池及Spring Boot整合(二):几个坑 附录官网文档:core.domain-events域事件 从聚合根发布事件 存储库管理的实体是聚合根。在领域驱动设计应用程序中,这些聚合根通常会发布领域事件。Sp…

pass 软件_PASS软件非劣效Logrank检验的h1参数如何设置?

前言 近日,有朋友在《统计咨询》公众号咨询:在使用PASS中的Non-Inferiority Logrank Tests程序计算样本量时,h1(Hazard Rate of Reference Group) 这个参数不懂得如何设置?见下图红色矩形标注的参数。相信这个也是其他很多朋友碰…

简单聊聊什么是Sass、Pass和Iass?

Iass,Pass和Saas都是什么意思?想必大家都听过也查阅过资料。但现在网上很多文章都会把一些比较简单的概念包装得非常牛气,逼格很高,各种高大上就是不说大白话,本文正好通过搭建网校平台为例和小伙伴简单分享一下它们之…

项目如何简单的使用pass平台部署服务

目录 前言: 一:Pass平台的优势 二:Pass平台的相关要素 三:docker|jenkins\k8s\pass\git之间关系 四:项目如何使用pass 五:pass平台常规操作 5.1应用重启 5.1.1定位到命名空间下的容器项目 5.1.2服务…

云计算之IasS、PasS、SaaS

越来越多的软件,开始采用云服务。 云服务只是一个统称,可以分成三大类。 IaaS:基础设施服务,Infrastructure-as-a-servicePaaS:平台服务,Platform-as-a-serviceSaaS:软件服务,Softw…

pass平台的搭建

Docker容器化部署Rancher CentOS 7.0默认使用的是firewall作为防火墙 查看防火墙状态 firewall-cmd --state ​ 停止firewall systemctl stop firewalld.service ​ 禁止firewall开机启动 systemctl disable firewalld.service ​ 安装rancher docker run -d --restart=unless-…

pass,saas区别

毫无疑问,PaaS与企业在服务与开发过程中的需求密切相关,特别是随着云计算的发展和企业平台化战略的驱动,企业对于云原生应用和全新的应用开发都提出了更高要求,而PaaS作为“承上启下”的中间层也变得越来越重要,更成为…

saas,pass介绍

毫无疑问,PaaS与企业在服务与开发过程中的需求密切相关,特别是随着云计算的发展和企业平台化战略的驱动,企业对于云原生应用和全新的应用开发都提出了更高要求,而PaaS作为“承上启下”的中间层也变得越来越重要,更成为…

Saas、Pass和lass

lass:需要将源码系统署到服务器上才能让大家访问,那服务器从哪来,咱们可以单独买一台实体服务器放家里放公司里,但是这样成本会比较高,而且维护会比较麻烦,所以更方便的方式就是去云服务平台,租…