ThreadPoolExecutor逻辑理解

不想贴源码,只想记一下它的实现思路

类中包含以下几个重要的成员

Work 内部类

关联了一个线程, 可以理解为一条工作流水线,就是用来执行具体工作的

works

工作线程列表,同时间开了多条工作流水线

workQueue

工作队列,用来暂时收留没来得及做的工作

corePoolSize

核心线程数:线程数超过该值时,则把来不及的工作放入workQueue

maximumPoolSize

最大线程数: workQueue放满之后,则新增工作流水线,如线程数超过了该值,就得用RejectedExecutionHandler来处理了

注意事项

  1. 总线程数在小于corePoolSize时,每次都创建新的线程来执行
  2. 线程执行完目前的工作后,如果再无工作可做,依据allowCoreThreadTimeOut开关,有可能阻塞在workQueue里,否则就销毁了。

你可能感兴趣的:(ThreadPoolExecutor逻辑理解)