ThreadPoolTaskExecutor 参数设置
时间: 2023-10-17 12:33:47 浏览: 156
性能爆表:SpringBoot利用ThreadPoolTaskExecutor批量插入百万级数据实测
ThreadPoolTaskExecutor 是 Spring 框架中的一个线程池实现类,用于管理和执行异步任务。它提供了很多可配置的参数,用于调整线程池的行为。以下是一些常用的参数及其设置:
1. `corePoolSize`:核心线程数,指定线程池中保留的核心线程数目。默认为 1。可以根据任务量和系统资源来调整这个值。
2. `maxPoolSize`:最大线程数,指定线程池允许的最大线程数目。默认为 Integer.MAX_VALUE。如果任务量比较大,可以适当增大这个值。
3. `queueCapacity`:任务队列容量,用于缓存未执行的任务。默认为 Integer.MAX_VALUE。如果任务量超过最大线程数,会先放入队列等待执行,可以根据实际情况设置合理的值。
4. `keepAliveSeconds`:线程空闲时间,指定空闲线程的存活时间。默认为 60 秒。如果超过核心线程数的线程在空闲时间内没有接收到新任务,会被销毁。
5. `threadNamePrefix`:线程名前缀,用于区分不同线程的名称。默认为 "SimpleAsyncTaskExecutor-"。可以根据具体业务需求进行修改。
6. `rejectedExecutionHandler`:拒绝策略,用于处理任务队列满时无法接收新任务的情况。默认为 AbortPolicy,直接抛出异常。还可以选择其他策略,如 CallerRunsPolicy、DiscardPolicy 或 DiscardOldestPolicy。
7. `threadFactory`:线程工厂,用于创建新线程。默认使用 Executors.defaultThreadFactory() 方法创建线程。
这些参数可以通过在配置文件中或者代码中进行配置和设置。例如,在 Spring Boot 的配置文件中,可以使用以下方式进行配置:
```yaml
spring:
task:
executor:
core-pool-size: 10
max-pool-size: 20
queue-capacity: 100
keep-alive-seconds: 60
thread-name-prefix: MyExecutor-
```
以上是一些常用的参数设置,具体的设置要根据实际需求和系统资源来调整。
阅读全文