首页 > 其他分享 >@EnableAsync @Async

@EnableAsync @Async

时间:2023-05-20 11:22:45浏览次数:40  
标签:EnableAsync 异步 name 线程 Async 方法

一. 基本介绍
@Async是spring为了方便开发人员进行异步调用的出现的,在方法上加入这个注解,spring会从线程池中获取一个新的线程来执行方法,实现异步调用

@EnableAsync表示开启对异步任务的支持,可以放在springboot的启动类上,也可以放在自定义线程池的配置类上,具体看下文

二.最简单的使用
在springboot项目中,直接在启动类上加上@EnableAsync,然后在service层的方法上对于需要异步调用的方法加上@Async,

那么当controller层调用这个方法的时候,就会在主线程外自动新建线程执行该方法

1.springboot启动类开启异步支持
2.service层的方法加@Async,如果在类上加该注解表示整个类的方法都异步执行,建议加到具体的某个方法上

三.自定义线程池来使用@Async
1.新建一个线程池配置类,@EnableAsync在配置类上加,不用在启动类上加也行,可以配置不同的线程池,用bean的name做区分
2.@Async的使用一样是在service层的方法上加,如果配置了多个线程池,可以用@Async("name"),那么表示线程池的@Bean的name,来指定用哪个线程池处理
假如只配置了一个线程池,直接用@Async就会用自定义的线程池执行
假如配置了多个线程池,用@Async没指定用哪个线程池,会用默认的SimpleAsyncTaskExecutor来处理
假如配置了多个线程池,用@Async("name"),会用指定的线程池处理

标签:EnableAsync,异步,name,线程,Async,方法
From: https://www.cnblogs.com/chenyi502/p/17416939.html

相关文章

  • C#异步编程之async/await
    https://blog.csdn.net/wulex/article/details/127380403  异步、多线程的区别 异步:属于通信的范畴,在发出消息当下不等待对方回应,便开始继续自己的任务。所以c#的很多_异步_操作都在io、socket这些类库下面,都是通信性质的类库, io可以理解向系统内核发送文件......
  • C# Async异步
    原文链接:https://blog.csdn.net/zuheyawen/article/details/99863588转载连接:https://www.cnblogs.com/wcrBlog/p/11690460.html前言C#异步编程有几种实现方式,异步方法就是其中的一种。异步方法是C#5.0才有的新特性,主要采用async、await关键字声明为异步方法,完成对方法的异......
  • Python: 结合多进程和 Asyncio 以提高性能
    动动发财的小手,点个赞吧!简介多亏了GIL,使用多个线程来执行CPU密集型任务从来都不是一种选择。随着多核CPU的普及,Python提供了一种多处理解决方案来执行CPU密集型任务。但是直到现在,直接使用多进程相关的API还是存在一些问题。在本文开始之前,我们还有一小段代码来帮助演......
  • C#异步方法async/await的三种返回类型
    有群友问C#异步方法async返回值Task和void的区别?看似简单,但不容易把它们用好。在C#中的异步编程已经成为现代编程的标配,异步方法(async/await)是实现异步编程的一种常用方式。在异步方法中,可以使用Task或void作为返回类型,还可以使用ValueTask返回类型。本文将介绍异步方法中3个......
  • 《asyncio 系列》13. 在 asyncio 中调用命令行程序
    楔子Python编写的应用程序需要Python运行环境,然而,并不是所有我们想要交互的组件都是用Python编写的。我们可能已经使用了一个用C++、Go、Rust或其他语言编写的应用程序,这些语言提供了更好的运行时特征,或者可以提供很优秀的实现方式,而无需我们重新实现。可能还希望使用操......
  • JS async/await 的理解和用法
    1.asyncasync是一个加在函数前的修饰符,被async定义的函数会默认返回一个Promise对象resolve的值。因此对async函数可以直接then,返回值就是then方法传入的函数。2.awaitawait也是一个修饰符,只能放在async定义的函数内。可以理解为等待。async一般用在获取res修饰,await一般......
  • C# Winform 界面操作异步回调 AsyncCallback
    usingSystem;usingSystem.Collections.Generic;usingSystem.Threading;usingSystem.Windows.Forms;namespaceWindowsFormsApp1{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();m......
  • Springboot 开启异步任务Async,邮件发送任务,定时任务
    异步任务1.主启动类开启异步注解 2.service目录下开启异步任务注解@ServicepublicclassAsyncService{@Async//异步任务注解的标志publicvoidhello(){try{Thread.sleep(3000);}catch(InterruptedExceptione){......
  • 《asyncio 系列》11. asyncio 的并发原语(锁、信号量、事件、条件)
    楔子使用多线程和多进程编写应用程序时,需要考虑非原子操作时的竞态条件,因为即使是并发增加整数这样简单的操作也可能导致微妙的、难以重现的bug。而asyncio是单线程的(除非与多线程和multiprocessing进行交互),这是否意味着我们就可以不必考虑竞争条件呢?事实证明,事情并非那么简......
  • Python协程asyncio
    在Python使用multiprocessing进行多线程和多进程操作 这篇文章中介绍了使用多线程的方式对一些I/O操作(文件读写、网络请求,这些操作不用等待其结束,在此期间可以做其他事情)进行加速。而本篇文章介绍的协程可以理解成“微线程”,不开辟其他线程,只在一个线程中执行,并且执行函数时......