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

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

@Asyncz注解所在的包

package org.springframework.scheduling.annotation;

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

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

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

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

http://www.lryc.cn/news/2393513.html

相关文章:

  • 前端面经 React 组件常见的声明方式
  • 酒店管理系统设计与实现
  • OpenCV---pointPolygonTest
  • Qt 的简单示例 -- 地址簿
  • Linux 下 C 语言实现工厂模式
  • 什么是DevOps的核心目标?它如何解决传统开发与运维之间的冲突?​
  • RocketMQ 死信队列(DLQ)实战:原理 + 开发 + 运维 + 架构应用指南
  • Android studio 查看aar源码出现/* compiled code */
  • 用HTML5+JavaScript实现汉字转拼音工具
  • 基于Java,SpringBoot,Vue,UniAPP医院预约挂号买药就诊病例微信小程序系统设计
  • ONNX模型的动态和静态量化
  • PHP 垃圾回收高级特性
  • OpenFeign vs MQ:微服务通信如何选型?详解同步与异步的适用场景
  • 如何用命令行将 PDF 表格转换为 HTML 表格
  • html5的响应式布局的方法示例详解
  • 如何用Python抓取Google Scholar
  • 电脑革命家测试版:硬件检测,6MB 轻量无广告 清理垃圾 + 禁用系统更新
  • Wireshark对usb设备进行抓包找不到USBPcap接口的解决方案
  • 题目 3298: 蓝桥杯2024年第十五届决赛真题-兔子集结
  • Unity开发之Webgl自动更新程序包
  • 深入理解设计模式之状态模式
  • Socket 编程 UDP
  • Jenkins实践(8):服务器A通过SSH调用服务器B执行Python自动化脚本
  • Spring AI系列之Spring AI 集成 ChromaDB 向量数据库
  • lua的注意事项2
  • 主流电商平台的反爬机制解析
  • 前端八股之HTML
  • tiktoken学习
  • 鲲鹏Arm+麒麟V10,国产化信创 K8s 离线部署保姆级教程
  • 历年厦门大学计算机保研上机真题