上篇写了线程池三大方法,先回顾以下:
Executors.newSingleThreadExecutor(); 单线程
Executors.newFixedThreadPool(5); 固定线程个数
Executors.newCachedThreadPool(); 缓存池,可扩展
我们看“三大方法”的源码分析,这样才能更好理解“七大参数”:
//Executors.newSingleThreadExecutor(); 单线程
//源码分析:
public static ExecutorService newSingleThreadExecutor() {
return new FinalizableDelegatedExecutorService
(new ThreadPoolExecutor(1, 1,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>()));
}
//Executors.newFixedThreadPool(5); 固定线程个数
//源码分析:
public static ExecutorService newFixedThreadPool(int nThreads) {
return new ThreadPoolExecutor(nThreads, nThreads,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
}
//Executors.newCachedThreadPool(); 缓存池,可扩展
//源码分析:
public static