@Async 注解危害
时间: 2023-10-03 21:07:35 浏览: 109
@Async注解在Spring框架中用于标识一个方法是异步执行的。然而,使用@Async注解可能会带来一些潜在的危害。
首先,使用@Async注解需要在配置类上添加@EnableAsync注解,以激活异步功能。这就意味着在使用@Async注解之前,需要对配置进行一些修改,可能会增加代码复杂性和维护成本。
其次,@Async注解是通过AsyncAnnotationBeanPostProcessor这个类实现的。这个类会处理@Async注解并生成代理对象。然而,使用@Async注解后,生成的代理对象与早期暴露出去的对象可能不一样。这可能导致一些问题,比如AOP切面无法正确拦截异步方法的调用。
另外,使用@Async注解需要使用线程池来实现异步执行。虽然可以自己通过线程池来实现异步,但是需要手动管理线程池的创建和销毁。如果线程池的配置不当,可能会导致系统的资源消耗过大或线程池满载而导致请求阻塞。
综上所述,使用@Async注解可能会引入一些潜在的危害,需要在配置和线程池管理方面进行额外的注意和处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [@Async注解的坑,小心](https://blog.csdn.net/YYniannian/article/details/125737301)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [Spring中异步注解@Async的使用、原理及使用时可能导致的问题](https://blog.csdn.net/qq_41907991/article/details/107500036)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文