public class EagerThreadPoolExecutor extends ThreadPoolExecutor {
/**
* task count 记录正在执行+队列等待执行的任务
*/
private final AtomicInteger submittedTaskCount = new AtomicInteger(0);
public EagerThreadPoolExecutor(int corePoolSize,//默认值0
int maximumPoolSize,//默认无限大
long keepAliveTime,//默认1分钟
TimeUnit unit, TaskQueue<Runnable> workQueue,//默认容量为1
ThreadFactory threadFactory,
RejectedExecutionHandler handler) {//AbortPolicyWithReport 拒绝策略,会打印堆栈到指定路径
super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);//按照给定参数创建JDK原生态线程池
}
/**
* @return current tasks which are executed
*/
public int getSubmittedTaskCount() {
return submittedTaskCount.get();
}
@Override
protected void afterExecute(Runnable r, Throwable t) {
submittedTaskCount.decrementAndGet(); //任务执行完毕后减1
}
@Override
public v