创建一个springboot的多线程安全线池的java源码
时间: 2023-10-14 22:15:14 浏览: 161
java 线程池源代码
5星 · 资源好评率100%
下面是一个简单的使用Spring Boot创建线程池的示例代码:
```java
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@Configuration
@EnableAsync
public class ThreadPoolConfig {
@Bean(name = "threadPoolTaskExecutor")
public ExecutorService threadPoolTaskExecutor() {
return Executors.newFixedThreadPool(10);
}
@Bean(name = "taskExecutor")
public Executor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(20);
executor.setQueueCapacity(30);
executor.setThreadNamePrefix("taskExecutor-");
executor.initialize();
return executor;
}
}
```
这个示例使用了Spring Boot的`@EnableAsync`注解来启用异步方法调用,同时使用了`Executor`和`ExecutorService`接口来创建线程池对象。其中,`threadPoolTaskExecutor()`方法使用了`Executors`类的`newFixedThreadPool()`方法来创建一个固定大小的线程池,而`taskExecutor()`方法使用了`ThreadPoolTaskExecutor`类来创建一个可配置的线程池。
上述代码将创建一个大小为10的固定线程池,并且将一个可配置的线程池作为`taskExecutor` bean返回。你可以根据自己的需求修改这些代码来创建一个适合自己应用的线程池。
阅读全文