队列过长的主要影响

1. 内存溢出 (OOM)

使用无界队列会让待执行任务不断累积,最终耗尽内存并抛出 OutOfMemoryError 

2. 垃圾回收压力增大

大量堆积的任务对象会占用堆内存,触发频繁的 GC,严重时会出现 “GC overhead limit exceeded”

3. 系统吞吐量下降与高延迟

任务堆积在线程池队列中时,新任务无法及时执行,导致整体吞吐量下降、响应时延显著增加 

4. 最大线程数失效与拒绝策略失灵

当队列容量巨大或使用无界队列时,线程数只会达到 corePoolSize 而不会扩展至 maximumPoolSize,导致拒绝策略永远不被触发

5. 任务饥饿死锁

若队列内的任务相互依赖(如 A 任务等待 B 任务结果),大量任务排队会造成线程饥饿死锁,线程池无法分配足够线程解决依赖