private final BlockingQueue
这个是阻塞队列 装的是工作线程
private final ReentrantLock mainLock = new ReentrantLock();
这个是可重入锁 锁的是下面的worker set
private final HashSet
这个是workers集合 获取了上面的锁 就可以操作
private final Condition termination = mainLock.newCondition();
awaitCondition中的终止状态
private int largestPoolSize;
最大线程池大小
private long completedTaskCount;
已完成的任务数
private volatile ThreadFactory threadFactory;
volatile类型的线程工厂 这是一个接口 就一个抽象方法newThread 传入Runnable实现类即可返回一个Thread
private volatile RejectedExecutionHandler handler;
这个是拒绝策略的handler 为volatile类型
private volatile long keepAliveTime;
这个是空闲线程最多存活时间 为volatile类型
private volatile boolean allowCoreThreadTimeOut;
只有这个为true 上面那个空闲线程最多存活时间才会起作用
private volatile int corePoolSize;
保证线程池能够存活的最小线程数 如果上面那个为true 这个值可以为0 且线程池还会存活
private volatile int maximumPoolSize;
最大线程池大小 和CAPACITY有关
private static final RejectedExecutionHandler defaultHandler =new AbortPolicy();
默认的拒绝策略为Abort 也就是忽略