ExecutorService
是Java提供的用于管理线程池的类。
1、FixedThreadPool
FixedThreadPool
,固定线程数的线程池,核心线程数和最大线程数是一样的;
1 | // 创建一个可重用固定个数的线程池 |
2、CachedThreadPool
CachedThreadPool
,缓存线程,池线程数可以持续增加。
1 | // 创建一个可缓存线程池 |
3、ScheduledThreadPool
ScheduledThreadPool
,周期性执行任务的线程池,定时或周期性的执行任务。
1 | //核心线程数是3 |
4、SingleThreadExecutor
SingleThreadExecutor
,单线程池,核心线程数是1,任务会按顺序执行。
1 | ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor(); |
5、SingleThreadScheduledExecutor
SingleThreadScheduledExecutor
,周期性执行任务的单线程池,核心线程数是1,只有一个任务在同一个时间执行。
1 | ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor(); |
总结,上面常用的线程池最终调用的都是 ThreadPoolExecutor
:
1 | public ThreadPoolExecutor(int corePoolSize, //核心线程数 |