在Spring Boot中创建线程池有多种方式,以下是其中两种常见的方式:
使用ThreadPoolTaskExecutor:import org.springframework.context.annotation.Bean;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import org.springframework.stereotype.Component;@Componentpublic class ThreadPoolConfig { @Bean public ThreadPoolTaskExecutor taskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(10); // 设置核心线程数 executor.setMaxPoolSize(20); // 设置最大线程数 executor.setQueueCapacity(100); // 设置队列容量 executor.setThreadNamePrefix("MyThread-"); // 设置线程名称前缀 executor.initialize(); return executor; }}然后,您可以在Spring Boot应用程序的任何位置通过注入ThreadPoolTaskExecutor来使用线程池:
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import org.springframework.stereotype.Component;@Componentpublic class MyService { @Autowired private ThreadPoolTaskExecutor taskExecutor; public void doSomething() { taskExecutor.execute(() -> { // 在此处执行需要异步处理的任务 }); }}使用@EnableAsync注解:首先,在您的Spring Boot应用程序的主配置类上添加@EnableAsync注解:import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableAsync;@Configuration@EnableAsyncpublic class AppConfig {}然后,您可以使用@Async注解在任何需要异步执行的方法上:
import org.springframework.scheduling.annotation.Async;import org.springframework.stereotype.Component;@Componentpublic class MyService { @Async public void doSomething() { // 在此处执行需要异步处理的任务 }}请注意,使用@Async注解时,Spring Boot会自动创建一个默认的线程池来执行异步任务。如果您想要自定义线程池的配置,可以通过在Spring Boot的主配置类上添加@EnableAsync注解,并在同一类中定义TaskExecutor bean来实现。

