ProxyAsyncConfiguration.java源码:

@Configuration
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
public class ProxyAsyncConfiguration extends AbstractAsyncConfiguration {@Bean(name = TaskManagementConfigUtils.ASYNC_ANNOTATION_PROCESSOR_BEAN_NAME)@Role(BeanDefinition.ROLE_INFRASTRUCTURE)public AsyncAnnotationBeanPostProcessor asyncAdvisor() {Assert.notNull(this.enableAsync, "@EnableAsync annotation metadata was not injected");AsyncAnnotationBeanPostProcessor bpp = new AsyncAnnotationBeanPostProcessor();Class<? extends Annotation> customAsyncAnnotation = this.enableAsync.getClass("annotation");if (customAsyncAnnotation != AnnotationUtils.getDefaultValue(EnableAsync.class, "annotation")) {bpp.setAsyncAnnotationType(customAsyncAnnotation);}if (this.executor != null) {bpp.setExecutor(this.executor);}if (this.exceptionHandler != null) {bpp.setExceptionHandler(this.exceptionHandler);}bpp.setProxyTargetClass(this.enableAsync.getBoolean("proxyTargetClass"));bpp.setOrder(this.enableAsync.<Integer>getNumber("order"));return bpp;}}

AbstractAsyncConfiguration.java源码:

    @Autowired(required = false)void setConfigurers(Collection<AsyncConfigurer> configurers) {if (CollectionUtils.isEmpty(configurers)) {return;}if (configurers.size() > 1) {throw new IllegalStateException("Only one AsyncConfigurer may exist");}AsyncConfigurer configurer = configurers.iterator().next();this.executor = configurer.getAsyncExecutor();this.exceptionHandler = configurer.getAsyncUncaughtExceptionHandler();}

看AsyncDefaultAutoConfiguration.java源码:

public class AsyncDefaultAutoConfiguration {@Autowired private BeanFactory beanFactory;@Configuration@ConditionalOnMissingBean(AsyncConfigurer.class)@ConditionalOnProperty(value = "spring.sleuth.async.configurer.enabled", matchIfMissing = true)static class DefaultAsyncConfigurerSupport extends AsyncConfigurerSupport {@Autowired private BeanFactory beanFactory;@Overridepublic Executor getAsyncExecutor() {return new LazyTraceExecutor(this.beanFactory, new SimpleAsyncTaskExecutor());}}

更多的SimpleAsyncTaskExecutor见《spring线程池(同步、异步)》

Aysnc的异步执行的线程池相关推荐

  1. @Async 异步任务自定义线程池的配置方法和 @Scheduled 定时任务自定义线程池的配置方式

    文章目录 一.定时和异步业务场景描述 二.定时调度任务的实现方式 三.定时调度任务的问题描述 四.定时调度多线程解决方案(方案一) 五.异步多线程程序实现方式 六.定时调度多线程解决方案(方案二) 一 ...

  2. 有赞一面:还有任务没执行,线程池被关闭怎么办?

    说在前面 在40岁老架构师 尼恩的读者交流群(50+)中,最近有小伙伴拿到了一线互联网企业如极兔.有赞.希音的面试资格,遇到一几个很重要的面试题: 还有线程池正在执行的任务和线程,如果线程池shutd ...

  3. Java异步并发和线程池

    Java异步并发和线程池 1.一条简单粗暴的路: a.使用 parallelStream可能存在的bug b. 如何正确使用 parallelStream 2.另一条路 参考1: https://we ...

  4. python异步爬虫之线程池

    单线程不足之处 当对多个url发送请求时,只有请求完第一个url才会接着请求第二个url(requests是一个阻塞的操作),比如下载图片,这种一个个执行的方式称为单线程.其存在等待的时间,这样效率是 ...

  5. Springboot之@Async异步指定自定义线程池使用

    开发中会碰到一些耗时较长或者不需要立即得到执行结果的逻辑,比如消息推送.商品同步等都可以使用异步方法,这时我们可以用到@Async.但是直接使用 @Async 会有风险,当我们没有指定线程池时,他会默 ...

  6. 串行任务如何提高效率Java_具有相同属性任务串行有序执行的线程池设计

    我有一个这样的线程池的场景,相信很多人都遇到过: 1,每个用户都可以添加多个任务: 2,有很多的用户和很多的任务: 3,每个用户添加的任务必须有序串行执行,即在同一时刻不能有同时执行一个用户的两个任务 ...

  7. java线程不执行_java线程池,阿里为什么不允许使用Executors?

    带着问题 阿里Java代码规范为什么不允许使用Executors快速创建线程池? 下面的代码输出是什么? ThreadPoolExecutor executor = new ThreadPoolExe ...

  8. UE4异步编程专题 - 线程池FQueuedThreadPool

    1. FQueuedThreadPool & IQueuedWork FQueuedThreadPool是UE4中抽象出的线程池.线程池由若干个Worker线程,和一个同步队列构成.UE4把同 ...

  9. springboot如何使用多线程,线程池管理

    在原生java中,创建和启动线程的方式大致有以下几种: 继承Thread类,然后重写run方法 实现Runnable接口,并重写run方法 匿名内部类 Thread thread = new Thre ...

最新文章

  1. 基于“飞桨”的深度学习智能车
  2. 洛谷P3779 [SDOI2017]龙与地下城(概率论+Simpson+FFT)
  3. Nature子刊 | 研究人员提出神经脆性可作为癫痫发作区(SOZ)的脑电图(EEG)标志物
  4. hal库开启中断关中断_[STM32]HAL库下GPIO按键中断与去抖问题分析(分析源码解决问题)...
  5. QQ空间Python爬虫v2.0--点赞数据分析
  6. Visio studio 2019中opencv 4.1.1运行环境配置(亲测可用)
  7. Angular应用一个创建场景的问题分析
  8. NSA泄露的恶意软件DoublePulsar感染了数万台Windows电脑
  9. mysql-数据库的增删切换使用等操作
  10. linux tar 基本格式、常用选项、压缩与解压缩
  11. python 写文件 编码_Python文件写入时的编码问题解决
  12. t470键盘拆解_thinkpad t470怎么样?thinkpad t470拆机图解全面评测
  13. 逻辑回归、LR算法、LR优缺点、LR推导、LR损失函数
  14. 巧用python求解逻辑题,特简单!
  15. 往事如烟 - 梧桐叶落
  16. excel2010将数字变成以文本存储的数字
  17. 小猫爪:i.MX RT1050学习笔记3-CCM
  18. Compound原理
  19. 2023年山东最新建筑八大员(电气施工员)模拟真题题库及答案
  20. _02_使用UUID获取唯一标识

热门文章

  1. 数据库中INFORMATION_SCHEMA的说明及使用
  2. Map集合练习之对字符串中字母出现的次数求和
  3. WP8.1学习系列(第五章)——中心控件Hub或透视控件Pivot交互UX
  4. nyoj------203三国志
  5. 为清理助手制作便利工具的技术实现
  6. id: cannot find name for user ID xxx处理办法
  7. 从@property说起(四)深入成员变量
  8. 剑指offer5 从尾到头打印链表
  9. C#之自己定义的implicit和explicit转换
  10. [置顶]       安全-用户身份验证