1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

[docs update]更新目录

This commit is contained in:
11来了 2024-12-27 00:33:08 +08:00
parent 1d68b14cdb
commit 3b81052f53
2 changed files with 9 additions and 1 deletions

View File

@ -414,6 +414,7 @@ export default sidebar({
"spring-transaction", "spring-transaction",
"spring-design-patterns-summary", "spring-design-patterns-summary",
"spring-boot-auto-assembly-principles", "spring-boot-auto-assembly-principles",
"async",
], ],
}, },
], ],

View File

@ -1,8 +1,15 @@
---
title: Async 注解原理分析
category: 框架
tag:
- Spring
---
# `@Async` 原理分析 # `@Async` 原理分析
`@Async` 注解由 Spring 框架提供,被该注解标注的类或方法会在 **异步线程** 中执行。这意味着当方法被调用时,调用者将不会等待该方法执行完成,而是可以继续执行后续的代码。 `@Async` 注解由 Spring 框架提供,被该注解标注的类或方法会在 **异步线程** 中执行。这意味着当方法被调用时,调用者将不会等待该方法执行完成,而是可以继续执行后续的代码。
**原理概述:** `@Async` 可以异步执行任务,本质上是使用 **动态代理** 来实现的。通过 Spring 中的后置处理器 `BeanPostProcessor` 为使用 `@Async` 注解的类创建动态代理,之后 `@Async` 注解方法的调用会被动态代理拦截,在拦截器中将方法的执行封装为异步任务提交给线程池处理。 **原理介绍** `@Async` 可以异步执行任务,本质上是使用 **动态代理** 来实现的。通过 Spring 中的后置处理器 `BeanPostProcessor` 为使用 `@Async` 注解的类创建动态代理,之后 `@Async` 注解方法的调用会被动态代理拦截,在拦截器中将方法的执行封装为异步任务提交给线程池处理。
开始讲解 `@Async` 的原理之前,我们先来看看`@Async` 使用。 开始讲解 `@Async` 的原理之前,我们先来看看`@Async` 使用。