spring异步编程,通过在配置类上添加@EnableAsync注解,并在需要进行异步执行的方法上添加@Async注解即可实现异步变成。先上一个例子

测试
a、不获取异步方法的结果

先不获取异步方法的结果,看代码执行结果

可以看到主线程一下在就运行完了,等了3秒过后异步方法也执行完了,说明main方法所在的主线程和异步方法不在同一个线程上执行
b、当获取异步方法的结果

运行结果

可以看到当主线程获取异步方法的结果的时候,主线程会被阻塞。
2、分析
debug调试一下上面的执行过程
a、先debug看一下我们的异步方法所在的实际类是啥样的
<
本文详细分析了Spring中的异步编程机制,通过@EnableAsync和@Async注解实现异步方法。通过示例展示了不获取和获取异步方法结果时的不同行为。在深入代码调试中,揭示了异步方法的执行流程,包括CGLib动态代理、AOP拦截、线程池执行任务以及CompletableFuture的角色,阐述了如何通过CompletableFuture.get()获取异步结果及其内部的阻塞机制。
最低0.47元/天 解锁文章
1029

被折叠的 条评论
为什么被折叠?



