在springBoot中如何创建线程池
时间: 2023-07-19 07:39:51 浏览: 103
Java开发案例-springboot-60-整合DynamicTp动态线程池-源代码+文档.rar
在Spring Boot中创建线程池有多种方式,最常用的是通过配置文件或者Java配置类创建ThreadPoolTaskExecutor来实现。以下是两种常用的方式:
1. 通过配置文件创建线程池
在application.properties或application.yml文件中添加以下配置:
```
# 线程池配置
spring.task.execution.pool.core-size=10
spring.task.execution.pool.max-size=20
spring.task.execution.pool.queue-capacity=200
```
这里配置了线程池的核心线程数、最大线程数和队列容量。然后在代码中注入ThreadPoolTaskExecutor,即可使用线程池了。
```java
@Autowired
private ThreadPoolTaskExecutor taskExecutor;
public void doSomething() {
taskExecutor.execute(new Runnable() {
@Override
public void run() {
// 执行任务
}
});
}
```
2. 通过Java配置类创建线程池
通过创建一个Java配置类来配置线程池。
```java
@Configuration
@EnableAsync
public class TaskExecutePool {
@Bean("taskExecutor")
public Executor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(20);
executor.setQueueCapacity(200);
executor.setThreadNamePrefix("taskExecutor-");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.initialize();
return executor;
}
}
```
这里通过@Bean注解将ThreadPoolTaskExecutor注入到Spring容器中,然后在需要使用线程池的地方通过@Resource或@Autowired注解注入即可。
```java
@Resource(name="taskExecutor")
private ThreadPoolTaskExecutor taskExecutor;
public void doSomething() {
taskExecutor.execute(new Runnable() {
@Override
public void run() {
// 执行任务
}
});
}
```
这样就可以在Spring Boot中创建一个线程池了。
阅读全文