首页 > 技术文章 > Java线程池线程数量的变化过程

jimmyzhang33 2018-04-04 02:07 原文

Java线程池在新建的时候,会设定线程池的核心线程数(corePoolSize)和最大线程数(maxPoolSize)两个值。

线程池中存活的线程数量会>=核心线程数,并且小于等于最大线程数。

线程数变化基本上是下面几种情况:

  1. 线程数量小于核心线程数的话,则生成新的线程;
  2. 如果线程数量大于等于核心线程数的话,并且任务有堆积的话,则把任务加到queue中;
  3. 如果queue已经满了,并且线程数量少于最大线程数,则生成新的线程;
  4. 如果queue已经满了,并且线程数量等于最大线程数,则拒绝新的任务;

推荐阅读