Executors类详解
Executors
是Java中用于快速创建线程池的工具类,提供了一系列工厂方法,简化了 ThreadPoolExecutor
和 ScheduledThreadPoolExecutor
的配置。以下是其核心方法、实现原理及使用注意事项:
1. 常用线程池工厂方法
(1) newFixedThreadPool
- 作用:创建固定大小的线程池,队列容量无界。
- 底层实现:
public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor( nThreads, nThreads, // 核心线程数 = 最大线程数 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>() // 无界队列 ); }
- 特点:
- 队列无界:任务无限堆积,可能引发
OutOfMemoryError
。 - 适用场景:任务量可控且执行时间短的场景(如批量处理)。
- 队列无界:任务无限堆积,可能引发
(2) newCachedThreadPool
- 作用:创建弹性线程池,线程数可动态扩展。
- 底层实现:
public static ExecutorService newCachedThreadPool