代码位置: spring-context\src\main\java\org\springframework\scheduling\annotation
实现原理: 有对应的BeanPostProcessor实现类
@Async + @EnableAsync
1. 在方法上使用@Async注解,申明该方法是一个异步任务;
2. 在类上面使用@Async注解,申明该类中的所有方法都是异步任务;
3. 使用此注解的方法的类对象,必须是spring管理下的bean对象;
4. Spring Boot启动类中增加@EnableAsync
a.@Async注解在使用时,如果不指定线程池的名称,则使用Spring默认的线程池,Spring默认的线程池为SimpleAsyncTaskExecutor。
b.方法上一旦标记了@Async注解,当其它线程调用这个方法时,就会开启一个新的子线程去异步处理该业务逻辑。
测试:https://blog.csdn.net/qq_22076345/article/details/82194482