当前位置: 首页 > news >正文

@Async 注解 走的是主线程 还是子线程呢

@Asyncz注解所在的包

package org.springframework.scheduling.annotation;

@Async 注解在Spring框架中用于标记一个方法为异步方法。当这个方法被调用时,它不会阻塞调用线程,而是会在一个单独的线程中执行。因此,@Async 注解走的是子线程,而不是主线程。

具体来说,当你在一个Spring管理的Bean上使用@Async注解时,Spring会创建一个代理对象来包装这个Bean。当你调用这个Bean上的异步方法时,实际上调用的是代理对象的方法。代理对象会负责将方法调用提交给一个任务执行器(TaskExecutor),通常是一个线程池。然后,任务执行器会分配一个新的线程来执行这个方法,从而实现异步执行。

这样,主线程就可以继续执行其他任务,而不需要等待异步方法的完成。这对于提高应用程序的响应性和性能非常有用,尤其是在执行耗时的操作(如数据库查询、文件I/O、远程调用等)时。

需要注意的是,要使@Async注解生效,你需要在Spring配置中启用异步支持。这通常通过在配置类上添加@EnableAsync注解来实现。此外,@Async注解的方法不能是同一个类内部的调用,因为这样不会通过代理对象,而是直接调用方法本身,从而失去异步执行的效果。

相关文章:

  • C# 将HTML文档、HTML字符串转换为图片
  • 代购企业如何解决选品管理问题?
  • IPD流程体系-TR2评审要素表
  • LangChain表达式 (LCEL)
  • RSTP介绍加实操
  • Spring Cloud 学习 —— 简单了解
  • ⼤模型驱动的DeepInsight Copilot在蚂蚁的技术实践
  • Express教程【002】:Express监听GET和POST请求
  • 两阶段uplift建模(因果估计+预算分配)的讲座与自己动手实践(一)
  • 血糖监测仪解决方案推荐芯片-NRF52832/HS6621/OM6626
  • Windows 11 家庭版 安装Docker教程
  • RCU stall 异常卡住问题
  • 【C/C++】cmake实现Release版本禁用调试接口技巧
  • YOLOv8分割onnx实战及tensorRT部署
  • Java 之殇:从中流砥柱到“被温柔替代”
  • 大话软工笔记—分离之业务与管理
  • 深度学习实战110-基于深度学习的工业系统故障诊断技术研究(卷积网络+注意力机制模型)
  • 核心机制:确认应答和超时重传
  • 【leetcode】02.07. 链表相交
  • 什么是AI Agent?大白话新手教学
  • 衡阳市住房和城乡建设网站/班级优化大师官方网站
  • 网站空间买多大的/谷歌关键词搜索量数据查询
  • 长沙市政府门户网站官网/东莞营销网站建设优化
  • 二级学院网站建设自评报告/上海网站排名seo公司
  • 企业网站建设的ppt/公司网络推广方法
  • 满山红网站建设公司/火蝠电商代运营公司