@Async 执行异步方法

你知道 @Async 是怎么让方法异步执行的吗? 本文通过对 @Async 注解的分析,和你解释了 @Async 是怎么让方法异步执行的吗? 这个问题;从分析过程中可以知道,对于绝大多数面向工程师使用的注解或者工具,本质上是离不开那些最最基本知识点的 阅读详情

TestController内写:

    @Autowired
    ComprehensiveAnalysisController comprehensiveAnalysisController;
    @GetMapping("async")
    public String getAsyncInfo(Map map)
    {
        System.out.println("--------------------");
        comprehensiveAnalysisController.asyncInfo();
        String str = Thread.currentThread().getName();
        System.out.println(str);
        return "外部线程名:" + str;
    }

在另一个类中写:

    @Async
    public void asyncInfo()
    {

        try {
            Thread.sleep(9000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
//        System.out.println("----" + Thread.currentThread().getName() +"----");
        System.out.println("----" + "异步执行名:" +"----" + Thread.currentThread().getName());
    }

总结: 被Async标记的方法, 会以异步的方式进行。
但是要注意: 调用被async标记的方法时,必须是不同的类进行调用,不能是同一个类中调用。否则不起作用。
如果A类中有被async标记的方法,则只能通过B,C等类调用,不能用A类调用。

Java-如何实现实现两个异步带有@Async注解的方法按顺序执行 要实现两个带有 @Async 注解的方法按顺序执行,可以使用 CompletableFuture 来管理异步任务。假设你有一个服务类,其中有两个异步方法 method1 和 method2,你希望确保 method1 执行完成。下面是一个完整的示例,展示了如何确保 method1 执行完成后,再执行 method2。除了使用 CompletableFuture,还有其他几种方法可以实现两个异步方法按顺序执行。方法2:使用 Future 和 get 方法。后,再执行 method2。 阅读详情

相关推荐

AU混响终极指南:从‘干声’到‘空间感’,用总音轨和发送技巧打造专业人声

本文详细介绍了如何在Adobe Audition(AU)中使用混响效果器,通过总音轨和发送技巧将‘干声’转化为具有专业‘空间感’的人声。从混响基础原理到总线架构设置,再到精细控制和自动化调整,全面解析了提升音频质量的实用技巧,适用于音乐制作、播客和内容创作。

weixin_30512089的博客 331

Spring使用@Async注解

本文讲述@Async注解,在Spring体系中的应用。本文仅说明@Async注解的应用规则,对于原理,调用逻辑,源码分析,暂不介绍。对于异步方法调用,从Spring3开始提供了@Async注解,该注解可以被标注在方法上,以便异步地调用该方法。调用者将在调用时立即返回,方法的实际执行将提交给Spring TaskExecutor的任务中,由指定的线程池中的线程执行。 在项目应用中,@Async调用线程池,推荐使用自定义线程池的模式。自定义线程池常用方案:重新实现接口AsyncConfigurer...

1 2036

【故障处理】- ORA-01722

在执行升级脚本@?/rdbms/admin/catupgrd.sql时报错ora-01722。

weixin_39099660的博客 854

@Async注解详解+实例

@Async注解详解+实例

javaeEEse的博客 1万+

8位可控加减法电路设计

一、设计要求   利用Logisim平台中现有运算部件构建一个8位可控加减法器,可支持八位加减法,利用已经封装全加器和逻辑门进行连接,要求实现相应的输出,判断是否溢出。 二、方案设计 实验原理: [A]补+[B]补 = [A+B]补(mod2^n+1)   公式1        [A-B]补 = [A]补+[-B]补(mod2^n+1)    公式2 FA为全加器,利用全加器实现加减法,难点在于实验减法,对输入的[Y]补各位取反加一即为[-Y]补,利用公式2,就可以将减法转化为加法再利用全加

qq_51700383的博客 1万+

戴维南和诺顿定理到底怎么选?一个实际维修案例讲透两种等效电路用法

本文通过工业电源模块维修案例,详细解析戴维南和诺顿定理在实际电路分析中的选择策略。针对电压敏感型故障、电流分配问题及功率传输异常,提供三大黄金法则,帮助工程师高效选择等效电路方法,提升故障排查效率。特别强调诺顿定理在电流分析中的优势。

weixin_31854867的博客 357

Spring之异步任务@Async详解分析

在业务场景中,有时需要使用自己定义的执行器来跑异步的业务逻辑,那该怎么办呢?答案是,自定义线程池。在方法上的@Async@Async("MyExecutor") //使用自定义的线程池(执行器) public void asyncCpsItemImportTask(Long platformId , String jsonList) {//...具体业务逻辑 } }

上善若泪 1万+

无人自行车平衡控制:最小二乘法动态零点拟合实践

本文探讨了无人自行车平衡控制中动态零点的重要性及实现方法。通过最小二乘法拟合车头角度与ROL值的线性关系,解决了固定零点在转向时导致的稳定性问题。实践表明,动态零点拟合能显著提升系统平衡稳定性并降低能耗。

uran的专栏 660

【异步任务】@Async注解使用方法及注解失效解决办法

SpringBoot框架下的@Async使用方及注解失效的可能问题和解决方法

God_WZH的博客 1万+

自监督学习原理与代码实战案例讲解

自监督学习原理与代码实战案例讲解 作者:禅与计算机程序设计艺术 1. 背景介绍 1.1 自监督学习的起源与发展 1.1.1 监督学习的局限性

AI天才研究院 620

点到面点云配准(Point To Plane)算法知识详解和详细推导,C++代码实现

点到面 ICP (Iterative Closest Point) 是在 3D 点云配准中常见的一种变体,通过最小化点到对应面(由法向量定义的局部平面)的距离来提高收敛速度和精度。

qq_36812406的博客 1808

【JUC】一文弄懂@Async的使用与原理

在Spring3.X的版本之后,内置了@Async解决了多个任务同步进行导致接口响应迟缓的情况。使用@Async注解可以异步执行一个任务,这个任务的返回值必定为null,所以在使用@Async推荐返回值为NULL。那么该如何使用@Async开启一个异步任务呢?:启动类上开启异步模式@Async:需要异步处理的方法@Service@Async需要注意的是,@Async的异步任务是基于AOP实现的,如果是自调用的情况下,@Async是不会生效的喔。

沉迷写代码的程序猿的博客 4326

LPDDR6 Efficiency Mode 技术探讨

LPDDR6 Efficiency Mode 技术探讨

zilan23的博客 1155

springBoot异步执行方法@Async

我们在使用多线程的时候,往往需要创建Thread类,或者实现Runnable接口,如果要使用到线程池,我们还需要创建Exectors。而在Spring中只要@EnableAsync就可以开启多线程,使用@Async就可以定义一个线程任务。 1、什么是异步调用 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执...

m0_37732829的博客 663

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

@Transactional 事务提交之后执行 @Async 修饰的异步方法

最近项目中遇到的问题: 俩个service方法, 方法A中调用方法B。 方法A核心业务涉及多张表的数据操作,事务采用注解:@Transactional(rollbackFor = Exception.class)。 方法B比较耗时,为了不影响核心业务,方法B 用@Async注解,单独开启一个线程去异步执行。(方法B在另外一个类里边,不能和A在同一个类)。 出现的问题: 方法A的事务还没提交,方法B就执行了,导致方法B中查到的数据还是老数据。 当时想到的解决方案,方法A事务提交后再执行方法B。 .

张大安的博客 4855

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring中使用@Async让方法异步执行

Spring中使用@Async让方法异步执行 本文目录Spring中使用@Async让方法异步执行一、概述二、开启步骤三、测试 一、概述 ​ 很多时候,为了提高性能我们都需要引入多线程来提高系统性能,说通俗点就是让方法异步执行。实现这个目的可以用执行异步方法的工具类,开个线程去执行。而在Spring中,则可以使用@Async注解,相比较工具类会更加优雅,本篇文章将会详细地介绍如何去使用 二、开启步骤 配置线程池 创建配置类ThreadPoolConfig.calss,异步方法最终会在这个线程池中被执行

生命中有太多不确定 772

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SpringBoot中的@Async 是怎么让方法异步执行?

Spring Boot中的@Async注解是基于Spring框架实现的异步执行方法的功能,与Java中的实现方式类似。它的实现原理是通过将被@Async注解修饰的方法放入到一个线程池中进行执行,从而实现异步执行的效果。具体实现步骤如下:(1)在Spring Boot主类上添加@EnableAsync注解,开启异步执行功能,例如:@EnableAsync @SpringBootApplication...

IT学习小镇 466

Spring @Async执行异步方法的简单使用

Spring @Async执行异步方法的简单使用 1.开启Spring的异步处理支持 配置类,使用@EnableAsync注解来开启异步处理 @Configuration @EnableAsync public class SpringAsyncConfig {} 2.@Async注解使用 业务类,@Async注解标明异步执行的方法 @Slf4j @Service public class UserServiceImpl implements UserService { // 不带返回值的异步

qingqingxiangyang的博客 315

使用Spring @Async异步执行方法的笔记

测试代码: Java代码 <p>@RunWith(SpringJUnit4ClassRunner.class)</p>@ContextConfiguration(locations={"...

chuifuhuo6864的博客 75

使用spring的@Async异步执行方法

应用场景:1、某些耗时较长的而用户不需要等待该方法的处理结果2、某些耗时较长的方法,后面的程序不需要用到这个方法的处理结果时在spring的配置文件中加入对异步执行的支持<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

秋香的博客 725
上一篇: 关于 数据对接入库失败后的 补录机制的一些想法
下一篇: springboot 过滤器 总结
libingbojava
博客等级 码龄9年 64粉丝 111原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值