ThreadPoolTaskExecutor
是 Spring Framework 中用来管理线程池的一个组件,基于 Java 的 java.util.concurrent.ThreadPoolExecutor
。以下是 ThreadPoolTaskExecutor
的一些重要特性:
- 线程池大小配置: 可以轻松设置线程池的核心和最大线程数,允许动态调整池大小。
- 队列容量配置: 任务可以排队等待执行。你可以配置队列的大小以及选择队列的实现(例如有界、无界等)。
- 线程优先级配置: 允许设置线程的优先级。
- 拒绝策略配置: 当线程池和队列都满时,你可以配置拒绝策略,例如抛出异常、运行调用者线程等。
- 线程工厂配置: 可以提供自定义的线程工厂以自定义创建线程的方式。
- 任务装饰配置: 可以提供自定义的装饰器来修改或增强提交给线程池的任务。
- 生命周期管理: 与 Spring 的生命周期集成,可以在上下文关闭时优雅地关闭线程池。
以下是一个使用 ThreadPoolTaskExecutor
的简单示例代码:
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
public class ThreadPoolTaskExecutorExample {
public static void main(String[] args) {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5); // 设置核心线程数
executor.setMaxPoolSize(10); // 设置最大线程数
executor.setQueueCapacity(25); // 设置队列容量
executor.setThreadNamePrefix("MyExecutor-"); // 设置线程名前缀
executor.initialize(); // 初始化执行器
// 提交任务
for (int i = 0; i < 30; i++) {
int taskNumber = i;
executor.execute(() -> {
System.out.println("Executing task " + taskNumber + " on thread " + Thread.currentThread().getName());
});
}
// 优雅关闭
executor.shutdown();
}
}
标签:自定义,队列,什么,配置,特性,线程,executor,ThreadPoolTaskExecutor
From: https://blog.51cto.com/u_12749768/6947708