Java 线程池面试怎么答

更新于 2026-09-02 · 面试易

线程池不是「开很多线程就快」。先说 ThreadPoolExecutor 七个参数里你真正调过的:核心数、最大数、队列、拒绝策略。再解释任务是 IO 密集还是 CPU 密集,为什么核心数不是越大越好。

口头顺序

  1. 任务从 execute/submit 进来,先核心线程、再排队、再扩到最大、再拒绝
  2. 队列用无界链表时,最大线程可能永远用不上,堆积会拖垮内存
  3. 拒绝策略要能说到 Abort、CallerRuns,以及你们线上选了哪一种
  4. 关闭时 shutdown 与 shutdownNow 的差别:等剩余任务还是打断

和其它并发工具怎么分工

简历若写过「异步下单」「批量导出」,讲清楚超时、取消和失败重试落在哪一层。编造「万级 QPS 自研调度器」很容易被追问穿。

结合你的后端项目练习并发题