线程池参数allowCoreThreadTimeOut的意义

2,759 阅读1分钟

allowCoreThreadTimeOut,按照字面意思理解:允许核心线程空闲超时关闭。我们知道,线程池会维护基本大小数量的线程,但是有时候,当空闲的时候,希望线程池所有的线程都销毁,节省资源。此时有2种做法:

  1. 设置corePoolSize为0。线程池没有空闲线程了,但是如果线程池维护了工作队列workQueue,有新的任务提交,就会进入workQueue,等workQueue满了之后才会创建新线程,这样很明显不合适。
  2. allowCoreThreadTimeOut参数就很好的解决了这个问题,允许设置corePoolSize,并且空闲时间超时也会被销毁,新任务被提交又会立即创建新线程,不会被放进workQueue。