Spring Boot 中自定义线程池的正确使用姿势:定义、注入与最佳实践
2026/6/8 10:10:27 网站建设 项目流程

文章目录

  • 线程池
    • 1. 定义线程池
    • 2. 注入线程池

线程池

1. 定义线程池

  • 定义线程池工具类value起别名
@ComponentpublicclassThreadUtil{@Bean("executorService")publicExecutorServiceexecutorService(){returnnewThreadPoolExecutor(10,// 核心线程数30,// 最大线程数60,TimeUnit.SECONDS,// 空闲线程存活时间newArrayBlockingQueue<>(500),// 有界队列newThreadFactory(){// 自定义线程名privatefinalAtomicIntegerindex=newAtomicInteger(1);@OverridepublicThreadnewThread(Runnabler){returnnewThread(r,"task-pool-"+index.getAndIncrement());}},newThreadPoolExecutor.CallerRunsPolicy()// 拒绝策略);}}

2. 注入线程池

  • 注入线程池,要用@Qualifier来与value的值对应
  • @Resource()
@ServicepublicclassTaskService{@Resource(name="executorService")privateExecutorServiceexecutorService;publicvoiddoTask(){executorService.execute(()->{System.out.println("执行任务 → "+Thread.currentThread().getName());});}}
  • @AutoWrite()
@ServicepublicclassTaskService{@Autowired@Qualifier("executorService")privateExecutorServiceexecutorService;}
  • 构造器注入
@ServicepublicclassTaskService{privatefinalExecutorServiceexecutorService;publicTaskService(@Qualifier("executorService")ExecutorServiceexecutorService){this.executorService=executorService;}}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询