線 程 池 默 認 初 始 化 後 不 啓 動 Worker, 等 待 有 請 求 時 才 啓
動 。
每 當 我 們 調 用 execute() 方 法 添 加 一 個 任 務 時 , 線 程 池 會 做 如 下 判
斷 :
如 果 正 在 運 行 的 線 程 數 量 小 於 corePoolSize, 那 麼 馬 上 創 建 線 程 運 行這 個 任 務 ;
如 果 正 在 運 行 的 線 程 數 量 大 於 或 等 於 corePoolSize, 那 麼 將 這 個 任 務放 入 隊 列 ;
如 果 這 時 候 隊 列 滿 了 , 而 且 正 在 運 行 的 線 程 數 量 小 於 maximumPoolSize, 那 麼 還 是 要 創 建 非 核 心 線 程 立 刻 運 行 這 個 任 務 ;
如 果 隊 列 滿 了 , 而 且 正 在 運 行 的 線 程 數 量 大 於 或 等 於maximumPoolSize, 那 麼 線 程 池 會 拋 出 異 常
RejectExecutionException。