使用ThreadPoolExecutor 还是使用 ThreadPoolTaskExecutor
时间: 2023-12-26 14:28:53 浏览: 99
线程池ThreadPoolExecutor
5星 · 资源好评率100%
ThreadPoolExecutor和ThreadPoolTaskExecutor都是用于实现线程池的类,但是ThreadPoolTaskExecutor是对ThreadPoolExecutor进行了封装处理。因此,如果你需要更高级的功能和更好的性能,我建议你使用ThreadPoolTaskExecutor。
下面是一个使用ThreadPoolTaskExecutor的示例代码:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolTaskExecutorExample {
public static void main(String[] args) {
// 创建一个ThreadPoolTaskExecutor对象
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 设置核心线程数
executor.setCorePoolSize(5);
// 设置最大线程数
executor.setMaxPoolSize(10);
// 设置队列容量
executor.setQueueCapacity(100);
// 设置线程池中线程的前缀名
executor.setThreadNamePrefix("MyThread-");
// 设置拒绝策略
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
// 初始化线程池
executor.initialize();
// 提交任务给线程池执行
executor.execute(new Runnable() {
@Override
public void run() {
System.out.println("Hello, ThreadPoolTaskExecutor!");
}
});
// 关闭线程池
executor.shutdown();
}
}
```
这个示例代码创建了一个ThreadPoolTaskExecutor对象,并设置了核心线程数、最大线程数、队列容量、线程池中线程的前缀名和拒绝策略。然后,通过execute方法提交一个任务给线程池执行,并最后关闭线程池。
阅读全文