今天,看了一下java 自带的线程池 ThreadPoolExecutor 的源代码。画了个类图,以便理解。
先看看构造方法中需要的参数:
- public ThreadPoolExecutor(int corePoolSize, //池中所保存的线程数
- int maximumPoolSize, //最大的线程数
- long keepAliveTime, //空闲线程存活的时间
- TimeUnit unit, //时间单位
- BlockingQueue<Runnable> workQueue,//存放task的队列
- ThreadFactory threadFactory, //用于创建线程的工厂
- RejectedExecutionHandler handler) //拒绝task时使用的机制
下面是我理解的类图: