当前位置: 首页 > news >正文

Spring Boot 线程池配置详解

Spring Boot 线程池配置详解

一、核心配置参数及作用

  1. 基础参数

核心线程数 (corePoolSize)‌

作用‌:线程池中始终保持存活的线程数量,即使空闲也不回收‌。
建议‌:根据任务类型设定(如 I/O 密集型任务可设为 CPU 核心数 × 2)‌。

最大线程数 (maxPoolSize)‌

作用‌:线程池允许创建的最大线程数,仅在队列满时触发扩容‌。
建议‌:设置为核心线程数的 2~3 倍,避免资源耗尽‌。

队列容量 (queueCapacity)‌

作用‌:任务缓冲队列的大小,决定线程池的请求处理能力‌。
建议‌:
有界队列‌(如 LinkedBlockingQueue):限制资源占用,防止内存溢出‌。
无界队列‌:仅适用于任务量可控且无突发流量的场景‌。

线程存活时间 (keepAliveSeconds)‌

作用‌:非核心线程空闲时的最大存活时间(单位:秒)‌。
建议‌:设为 60~120 秒,平衡资源回收效率与频繁创建的开销‌。
2. 高级配置

线程名称前缀‌

作用‌:标识线程池类型,便于监控和日志排查‌。
示例‌:
properties
Copy Code
spring.task.execution.thread-name-prefix=my-thread-

拒绝策略 (RejectedExecutionHandler)‌

作用‌:队列和线程池均满时的处理策略‌。
常见策略‌:
策略名 行为 适用场景
AbortPolicy 抛出异常拒绝新任务 严格保障任务不丢失
DiscardOldestPolicy 丢弃队列最旧任务并重试提交 高频请求场景(如实时处理)
CallerRunsPolicy 由提交任务的线程直接执行 限流场景

二、配置方式

  1. 配置文件(application.properties/yml)
spring.task.execution

相关文章:

  • Docker 介绍 · 安装详细教程
  • pycharm中安装Charm-Crypto
  • PostgreSQL-常用命令
  • 未来杭州:科技与茶香交织的生态诗篇
  • Jmeter分布式测试启动
  • 【Android】Android Activity 横屏设置详解及常见异常问题解决方法汇总
  • 网络层-IP地址计算
  • MCU的最佳存储方案CS创世 SD NAND
  • 第7篇:Linux程序访问控制FPGA端LEDR<五>
  • Go:入门
  • S32K144入门笔记(二十四):FlexCAN传输、接收简述
  • SAP系统年终结算出错
  • MacOS中的鼠标、触控板的设置研究
  • C#基础类型系统-接口
  • Java代码块详解:分类、作用与最佳实践
  • p2p的发展
  • MySQL快速入门
  • 财务管理域——管理会计系统
  • Kotlin 学习-方法和参数类型
  • 「The Road to Web3 Cloud」香港活动回顾|波卡的 Web3 Cloud 愿景