线程池之实例
开启线程池:
@Configuration @EnableAsync //开启多线程 public class ThreadPoolConfig{ @Bean("taskExecutor") public Executor asyncServiceExecutor(){ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); //设置核心线程数 executor.setCorePoolSize(5); //设置最大线程数 executor.setMaxPoolSize(20); //配置队列大小 executor.setQueueCapacity(Integer.MAX_VALUE); //设置线程活跃时间(S) executor.setKeepAliveSeconds(60); //设置线程默认名称 executor.setThreadNamePrefix("Hello World"); //等待所有任务结束后再关闭线程池 executor.setWaitForTasksToCompleteOnShutdown(true); //执行初始化 executor.initialize(); return executor; } }
使用线程池:
在需要使用线程池的方法上:
@Async("taskExecutor") public void updateXXX(){ //业务逻辑 }