Spring Boot 中自定义线程池的正确使用姿势:定义、注入与最佳实践

文章目录

  • 线程池
    • [1. 定义线程池](#1. 定义线程池)
    • [2. 注入线程池](#2. 注入线程池)

线程池

1. 定义线程池

  • 定义线程池工具类value起别名
java 复制代码
@Component
public class ThreadUtil {

    @Bean("executorService")
    public ExecutorService executorService() {
        return new ThreadPoolExecutor(
                10,                    // 核心线程数
                30,                    // 最大线程数
                60, TimeUnit.SECONDS,  // 空闲线程存活时间
                new ArrayBlockingQueue<>(500), // 有界队列
                new ThreadFactory() {  // 自定义线程名
                    private final AtomicInteger index = new AtomicInteger(1);
                    @Override
                    public Thread newThread(Runnable r) {
                        return new Thread(r, "task-pool-" + index.getAndIncrement());
                    }
                },
                new ThreadPoolExecutor.CallerRunsPolicy() // 拒绝策略
        );
    }
}

2. 注入线程池

  • 注入线程池,要用@Qualifier来与value的值对应
  • @Resource()
java 复制代码
@Service
public class TaskService {

    @Resource(name = "executorService")
    private ExecutorService executorService;

    public void doTask() {
        executorService.execute(() -> {
            System.out.println("执行任务 → " + Thread.currentThread().getName());
        });
    }
}
  • @AutoWrite()
java 复制代码
@Service
public class TaskService {

    @Autowired
    @Qualifier("executorService")
    private ExecutorService executorService;

}
  • 构造器注入
java 复制代码
@Service
public class TaskService {

    private final ExecutorService executorService;

    public TaskService(@Qualifier("executorService") ExecutorService executorService) {
        this.executorService = executorService;
    }
}
相关推荐
京和动物医院·总院1 分钟前
2026年未央区宠物医院:如何挑选最适合您爱宠的健康守护者
大数据·人工智能·python
刘小八4 分钟前
RAG 文档切分不是越细越好:选择 Chunk Size 与 Overlap
人工智能·python·语言模型
互联网中的一颗神经元6 分钟前
小白python入门 - 23. Python 正则表达式的应用
python·正则表达式
雪碧透心凉_7 分钟前
while 循环与循环嵌套
开发语言·python
初学者,亦行者13 分钟前
利用pyecharts自动化绘制漏斗图保姆级教程
python·信息可视化·数据分析
人间凡尔赛14 分钟前
AI-Native 云原生架构:2026 年从容器编排到智能体编排的范式革命
后端·云原生·架构
这就是佬们吗22 分钟前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
吴声子夜歌24 分钟前
MongoDB 4.x——SpringBoot框架整合
数据库·spring boot·mongodb
IT_陈寒31 分钟前
Vue的响应式让我加班到凌晨3点,原来问题出在这
前端·人工智能·后端
卷无止境32 分钟前
提升 Python 代码健壮性的方法大盘点
后端·python