文章目录
引言
本章节继续源码阅读,内容是 Java 并发包中的任务调度框架 ThreadPoolExecutor
。它是一个灵活、稳定、支持定制的线程池,阿里开发者规范中也强制要求使用该类来获取线程资源。阅读它的源码,了解它的设计思想,对一个开发岗的人来说,还是大有裨益的。
本文将从线程池的扩容机制、任务提交流程和任务饱和策略三个方面来理解源码。
线程调度框架概览
JUC
的 Executor
接口及其实现类,构成整个Java 线程调度框架,在 Eclipse 中选中 Executor
类后,按下 Ctrl+T 查看它的类继承体系,可以看到一个庞大的类群:
观察这个图,可以看到,除了 JUC
提供的类外,还有很多第三方扩展的线程调度器,典型的是 Tomcat 扩展的类。如果需要,我们也可以自己实现 ThreadPoolExecutor
类,丰富它的功能。