@Configuration
@EnableAsync //开启异步调用
public class AsyncExecutorConfig {@Value("${thread.number}")private Integer threadNumber;@Value("${thread.namePrefix}")private Integer namePrefix;@Bean("asyncThreadExecutor")public Executor asyncThreadExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();// 设置核心线程数executor.setCorePoolSize(threadNumber);// 设置线程队列大小executor.setQueueCapacity(threadNumber * 10);// 设置线程最大线程数量executor.setMaxPoolSize(threadNumber * 5);// 设置最大线程空闲时间,达到最大空闲时间则自动销毁executor.setKeepAliveSeconds(30);// 设置线程池名称前缀executor.setThreadNamePrefix(namePrefix);// 设置核心线程达到最大空闲时间时也可以销毁executor.setAllowCoreThreadTimeOut(true);/** rejection-policy:当pool已经达到max size的时候,如何处理新任务* CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行*/executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());// 初始化executor.initialize();return executor;}
}

参数的配置详情参考:https://blog.csdn.net/zhouhl_cn/article/details/7392607

调用使用线程池 @Async

  @Async("asyncThreadExecutor")public void threadPool() {LoggerFactory.getLogger(CustomerService.class).info("***" + ":Hello World!");}

Spring 线程池的使用和配置相关推荐

  1. spring 线程池_Spring线程池服务

    spring 线程池 线程池对于执行同步和异步过程非常重要. 本文介绍如何使用Spring开发和监视线程池服务. 创建线程池已通过两种替代方法进行了说明. 二手技术 : JDK 1.6.0_21 春天 ...

  2. Spring线程池开发实战

    Spring线程池开发实战 作者:chszs,转载需注明. 作者博客主页:http://blog.csdn.net/chszs 本文提供了三个Spring多线程开发的例子,由浅入深,由于例子一目了然, ...

  3. 线程池监控和动态配置

    线程池 线程池是一种 "池化" 的线程使用模式,通过创建一定数量的线程,让这些线程处于就绪状态来提高系统响应速度,在线程使用完成后归还到线程池来达到重复利用的目标,从而降低系统资源 ...

  4. Java多线程之线程池的参数和配置

    在Java多线程编程中,线程池是一种常见的技术,用于管理线程的创建和销毁.线程池中的线程可以被重复利用,从而减少了线程的创建和销毁的开销,提高了程序的性能.在Java中,线程池的参数和配置非常重要,不 ...

  5. spring线程池的理解和使用

    1.spring线程池 <bean id="taskExecutor" class="org.springframework.scheduling.concurre ...

  6. spring线程池的使用

    为了尽量减少耗时操作对Action执行的影响,使用TaskExecutor线程池来管理耗时任务,作为后台进程执行,从而解决了问题. 场景:     使用了Struts和Spring,但Struts的A ...

  7. spring线程池使用

    为何使用多线程 对于复杂的业务逻辑下,有时候需要使用多线程执行,以优化项目的执行速度 单线程同步执行的场景中,如果前边出现异常,会导致所有任务中断,异步执行没有这样的问题 多线程实现方式:线程池 减少 ...

  8. Spring 线程池使用

    Spring 中默认自带线程池_org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor,一般有可以直接使用,这是时候使用的是默 ...

  9. Spring线程池异步传递MDC信息

    目录 1. 什么是MDC 2. 引入MDC打印步骤 2.1 pom依赖 2.2 log4j2打印日志配置文件 3 步骤演示 3.1 单线程业务使用示例 postman查询示例 查询代码 查询日志 3. ...

最新文章

  1. 国际化(1)---JS文件国际化
  2. 树的最小支配集、最小点覆盖、最大独立集【模板】
  3. 设计模式--程序猿必备面向对象设计原则
  4. deepin20自带c语言,deepin 20.1终于找到你-国产操作系统deepin之初体验
  5. 转帖:由C++转向C#的几种对策
  6. AndroidStudio 文件目录如何“刷新”
  7. linux内核系列之二_资源
  8. cubemx stm32 配置两个串口_用STM32CubeMX怎么配置串口的接收中断
  9. 美赛O奖论文翻译-2015埃博拉病毒
  10. 软件架构设计原则--开闭原则
  11. Python报错AssertionError: can only test a child process
  12. 使用VBA让Word或Excel文档窗口置顶
  13. Python 第二章 字典
  14. ffmpeg4.x支持的编解码器等相关信息一览表
  15. ROS 教程2 机器人雷达建图 蒙特卡洛定位 导航 路径规划 仿真
  16. 团队开发工具之一——Wiki
  17. jQuery——小案例:点击图片放大缩小
  18. Mysql源码编译和调试debug
  19. 2000年-2009年华语金曲榜
  20. KVM内存管理(三)—— KSM操作实践

热门文章

  1. 张孝祥老师给我们的---该不该从大学退学的讨论
  2. Slim Framework RabbitMQ
  3. ZCuSn10Pb1铸造锡青铜套ZCuSn10Pb1力学性能
  4. 零点工作室暑假集训(AtCoder--ABC234)
  5. 分页(Limit+RowBounds)
  6. PTA实验题:7-2 计算全班学生C++课程的总成绩和平均成绩 (10 分)
  7. 复制粘贴代码时要注意空白字符的问题
  8. 磁盘阵列RAID0、RAID1、RAID10、RAID5、RAID50、RAID6
  9. 向量点积计算java
  10. 线程撕裂者3990x和5950x哪个好