Java面试题更新 2026-08-05

请解释 Java 线程池的基本概念,并说明如何使用它来提高并发性能。

性能优化风险判断技术原理Java

考察说明

考查对 Java 线程池原理与并发性能优化的理解。

回答思路

  1. 【回答框架 1】线程池是预先创建并复用一组线程的机制,核心参数包括核心线程数、最大线程数、队列容量和拒绝策略,用于管理任务执行并减少线程创建销毁开销。
  2. 【回答框架 2】使用线程池可避免频繁创建和销毁线程带来的资源消耗,通过复用线程提升响应速度,并支持任务队列缓冲,防止瞬时负载过高压垮系统。
  3. 【回答框架 3】提高并发性能的关键是合理配置参数:核心线程数根据任务类型(CPU 密集或 IO 密集)确定,例如 CPU 密集约为 Ncpu,IO 密集可参考 Ncpu×(1+W/C),但最终需结合资源上限与压测调整;队列和拒绝策略影响背压行为。
  4. 【回答框架 4】线程池需关注饱和策略与异常处理:当队列满且线程数达上限时采用拒绝策略,常见有 AbortPolicy、CallerRunsPolicy 等;任务内异常需单独捕获,避免影响线程复用。
  5. 【关键点 1】线程池复用线程,降低创建销毁开销,提升并发吞吐。
  6. 【关键点 2】合理配置核心与最大线程数、队列与拒绝策略,避免资源耗尽。
  7. 【关键点 3】性能需结合任务特性与压测验证,公式仅作初始估算。
  8. 【易错点 1】将线程数公式视为确定答案,忽视实际压测与资源限制。
  9. 【易错点 2】不对任务抛出的异常做处理,可能导致执行状态丢失或线程被异常中断。
  10. 【易错点 3】无界队列可能引发内存溢出,应选择合适的队列类型。