线程池隔离了任务提交与执行,也把无限并发变成可管理的容量。真正重要的参数包括线程数、队列长度、超时和拒绝策略,它们共同定义系统如何面对过载。

从依赖容量反推

如果下游数据库连接池只有 30 个连接,把业务线程池设为 300 通常只会制造排队和上下文切换。应先确认 CPU、连接池、远程接口限流和期望延迟,再用压测校准线程数。

队列不是越大越好

无界队列把拒绝变成长时间等待,最终表现为超时和内存上涨。有限队列能更快暴露容量边界。拒绝时可以快速失败、调用方执行或降级,但不能悄悄丢掉关键任务。

线上至少监控活跃线程数、队列深度、任务等待时间、执行时间和拒绝次数。当队列持续增长时,扩容只是一种选择,减少慢调用和保护下游往往更关键。