Java中的5种线程池类型
- 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💖点点关注,收藏不迷路💖 |