实战:在Spring Boot中使用线程池
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
@EnableAsync
@Configuration
public class AsyncConfig {
@Bean(name = "taskExecutor")
public Executor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(4); // 核心线程数
executor.setMaxPoolSize(8); // 最大线程数
executor.setQueueCapacity(100); // 队列大小
executor.setKeepAliveSeconds(60); // 线程空闲时的存活时间
executor.setThreadNamePrefix("MyThread-"); // 线程名称前缀
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); // 拒绝策略
executor.initialize();
return executor;
}
}
这段代码定义了一个名为taskExecutor
的线程池配置,可以在Spring Boot应用中使用。通过@EnableAsync
注解开启异步方法的支持,并通过@Async
注解标记需要异步执行的方法。ThreadPoolTaskExecutor
定义了线程池的参数,例如核心线程数、最大线程数、队列大小、存活时间以及拒绝策略等。这些参数可以根据实际需求进行调整以优化性能。
评论已关闭