Java中的五种线程池类型
- 1. CachedThreadPool (有缓冲的线程池)
- 2. FixedThreadPool (固定大小的线程池)
- 3. ScheduledThreadPool(计划线程池)
- 4. SingleThreadExecutor (单线程线程池)
- 5. ThreadPoolExecutor (自定义线程池)
💖The Begin💖点点关注,收藏不迷路💖
|
1. CachedThreadPool (有缓冲的线程池)
- 特点:动态调整线程数,适合执行大量短时间的异步任务。
- 适用场景:任务执行时间短,提交频率高。
ExecutorService threadPool = Executors.newCachedThreadPool();
2. FixedThreadPool (固定大小的线程池)
- 特点:固定大小的线程池,控制并发量。
- 适用场景:任务执行时间长,需控制并发数。
ExecutorService threadPool = Executors.newFixedThreadPool(3);
3. ScheduledThreadPool(计划线程池)
- 特点:支持定时及周期性执行任务。
- 适用场景:定时检查、发送邮件等周期性或延迟任务。
ExecutorService threadPool = Executors.newScheduledThreadPool(2);
4. SingleThreadExecutor (单线程线程池)
- 特点:单线程执行,保证任务顺序。
- 适用场景:需要顺序执行的任务,或避免并发。
ExecutorService threadPool = Executors.newSingleThreadExecutor();
5. ThreadPoolExecutor (自定义线程池)
- 特点:高度可配置,自定义参数。
- 适用场景:复杂的并发场景,需要自定义线程池参数。
ExecutorService threadPool = new ThreadPoolExecutor(
// 核心线程数
1,
// 最大线程数
5,
// 线程存活时间
1L,
// 时间单位
TimeUnit.SECONDS,
// 任务队列
new LinkedBlockingQueue<>(),
// 线程工厂
Executors.defaultThreadFactory(),
// 拒绝策略
new ThreadPoolExecutor.AbortPolicy()
);
💖The End💖点点关注,收藏不迷路💖
|