ThreadPoolExecutor执行过程详解

35 阅读1分钟

结合源码,查看此图

线程池执行.png

work里面的实现没有画图,简单概括下:

  1. work线程中的run会循环读取队列元素去执行

  2. 当队列为空时,会执行processWorkerExit去尝试中断空闲的work线程,并在此之后判断work线程数是否满足>=核心线程数,如果允许核心线程超时的话就判断是否>=1,不满足的时候则新增addWorker(null, false);