ThreadPoolTaskExecutor 创建代码
时间: 2023-05-26 10:06:36 浏览: 180
threadPool的实现代码
以下是一个基本的ThreadPoolTaskExecutor创建代码示例:
```java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.task.TaskExecutor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@Configuration
public class MyConfig {
@Value("${executor.core.pool.size}")
private int corePoolSize;
@Value("${executor.max.pool.size}")
private int maxPoolSize;
@Value("${executor.queue.capacity}")
private int queueCapacity;
@Bean
public TaskExecutor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(corePoolSize);
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
executor.setThreadNamePrefix("my-thread-");
executor.initialize();
return executor;
}
}
```
在实例化ThreadPoolTaskExecutor时,设置以下属性:
- corePoolSize:线程池中保持活跃的线程数。
- maxPoolSize:线程池中最大允许的线程数,包括活跃和等待的线程。
- queueCapacity:如果等待队列满了,并且线程数达到了maxPoolSize,新任务将被拒绝。
- threadNamePrefix:线程名称的前缀,使其易于识别和跟踪。
在创建了ThreadPoolTaskExecutor之后,调用initialize()方法以初始化该执行者的状态。最后,将它作为一个Spring bean返回。
阅读全文