我感觉这里把线程的运行,空闲,存活搞混了。
我问ai严谨点对于线程处理任务流程应该是:
全程判断依据:线程池中「已创建且未销毁的工作线程总数」(与线程当前是执行任务 / 空闲等待无关)
提交新任务至线程池;
若当前工作线程总数 < corePoolSize:
直接创建新的核心工作线程执行该任务;
若当前工作线程总数 ≥ corePoolSize:
尝试将任务添加至 workQueue 阻塞队列;
入队成功:任务排队,等待空闲工作线程执行;
入队失败(队列已满):执行下一步;
队列已满,且当前工作线程总数 < maximumPoolSize:
创建新的非核心工作线程执行该任务;
队列已满,且当前工作线程总数 ≥ maximumPoolSize:
触发拒绝策略,通过 RejectedExecutionHandler.rejectedExecution() 处理该任务。