java 线程池注解方式的使用

线程池配置信息

#线程池配置
ThreadPoolConfig:
  #核心线程池大小
  corePoolSize: 50
  #最大可创建的线程数
  maxPoolSize: 200
  #队列最大长度
  queueCapacity: 500
  #线程池维护线程所允许的空闲时间
  keepAliveSeconds: 60

线程注入


/**
* @description: 线程池注入 * @author: guan * @date: 2022/5/17 10:34 */ @Configuration public class ThreadPoolConfig { // 核心线程池大小 @Value("${ThreadPoolConfig.corePoolSize}") private int corePoolSize; // 最大可创建的线程数 @Value("${ThreadPoolConfig.maxPoolSize}") private int maxPoolSize; // 队列最大长度 @Value("${ThreadPoolConfig.queueCapacity}") private int queueCapacity ; // 线程池维护线程所允许的空闲时间 @Value("${ThreadPoolConfig.keepAliveSeconds}") private int keepAliveSeconds; @Bean(name = "threadPoolTaskExecutor") public ThreadPoolTaskExecutor threadPoolTaskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); //线程池名的前缀方便我们定位处理任务所在的线程池 executor.setThreadNamePrefix("courses-schedule-"); executor.setMaxPoolSize(maxPoolSize); executor.setCorePoolSize(corePoolSize); executor.setQueueCapacity(queueCapacity); executor.setKeepAliveSeconds(keepAliveSeconds); // 线程池对拒绝任务(无线程可用)的处理策略 executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); return executor; } }

线程使用

    /**
     * 异步线程开启 调用线程池名称:threadPoolTaskExecutor
     * @param name
     */
    @Async(value = "threadPoolTaskExecutor")
    public void test(String name) {
        System.out.println("开启异步进程"+name);
    }

 

posted @ 2022-06-09 11:07  你造吗  阅读(358)  评论(0)    收藏  举报