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); }
昨夜西风凋碧树,独上高楼,望尽天涯路。

浙公网安备 33010602011771号