springboot配置线程池
时间: 2023-07-08 21:45:35 浏览: 163
在Spring Boot中,配置线程池可以通过在application.properties或application.yml文件中设置相关属性来实现。以下是一些常用的属性:
1. 设置核心线程数:
```
spring.task.execution.pool.core-size=10
```
2. 设置最大线程数:
```
spring.task.execution.pool.max-size=20
```
3. 设置线程池队列容量:
```
spring.task.execution.pool.queue-capacity=100
```
4. 设置线程池线程的存活时间(单位为秒):
```
spring.task.execution.pool.keep-alive=30
```
5. 设置线程池中线程的名称前缀:
```
spring.task.execution.pool.thread-name-prefix=task-executor-
```
6. 设置拒绝策略:
```
spring.task.execution.pool.rejection-policy=CALLER_RUNS
```
以上属性中,spring.task.execution.pool前缀指定了线程池的名称,后面的属性指定了线程池中线程的相关参数。
另外,还可以通过在@Configuration类中实现TaskExecutorConfigurer接口来自定义线程池配置。例如:
```
@Configuration
@EnableAsync
public class MyConfig implements TaskExecutorConfigurer {
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setTaskExecutor(myTaskExecutor());
}
@Bean
public TaskExecutor myTaskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(20);
executor.setQueueCapacity(100);
executor.setThreadNamePrefix("my-executor-");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.initialize();
return executor;
}
}
```
在这个例子中,我们通过实现TaskExecutorConfigurer接口来配置自定义的线程池,并将其设置为默认的异步执行器。通过@Bean注解,我们创建了一个ThreadPoolTaskExecutor对象,并设置了与上述属性类似的参数。最后,我们将其返回,并将其设置为AsyncSupportConfigurer的任务执行器。
阅读全文