ThreadPoolConfig.java 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package com.backendsys.config.ThreadPool;
  2. import org.springframework.context.annotation.Bean;
  3. import org.springframework.context.annotation.Configuration;
  4. import org.springframework.scheduling.annotation.EnableAsync;
  5. import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
  6. import java.util.concurrent.Executor;
  7. import java.util.concurrent.ThreadPoolExecutor;
  8. /**
  9. * 线程池
  10. */
  11. @Configuration
  12. @EnableAsync
  13. public class ThreadPoolConfig {
  14. @Bean("taskExecutor")
  15. public Executor asyncServiceExecutor() {
  16. ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
  17. // 设置核心线程数
  18. executor.setCorePoolSize(5);
  19. // 设置最大线程数
  20. executor.setMaxPoolSize(10);
  21. // 配置队列大小
  22. executor.setQueueCapacity(1000);
  23. // 设置线程活跃时间 (秒)
  24. executor.setKeepAliveSeconds(60);
  25. // 等待所有任务结束后再关闭线程池
  26. executor.setWaitForTasksToCompleteOnShutdown(true);
  27. // 设置拒绝策略
  28. executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
  29. // 执行初始化
  30. executor.initialize();
  31. return executor;
  32. }
  33. }