【发布时间】:2020-04-13 11:14:26
【问题描述】:
以下是 Sun 的线程创建规则,简单来说:
- 如果线程数小于 corePoolSize,则创建一个新线程来运行新任务。
- 如果线程数等于(或大于)corePoolSize,则将任务放入队列。
- 如果队列已满,并且线程数小于 maxPoolSize,则创建一个新线程来运行任务。
- 如果队列已满,且线程数大于等于 maxPoolSize,则拒绝该任务。
为什么队列已满时创建非核心线程?我不明白他们为什么这样做。队列为空时为什么不创建非核心线程?
【问题讨论】:
-
如果队列为空,新线程将运行什么?