Java线程池高频面试题及详细答案(实战向).docxVIP

  • 1
  • 0
  • 约5.43千字
  • 约 7页
  • 2026-08-24 发布于河北
  • 举报

Java线程池高频面试题及详细答案(实战向).docx

Java线程池高频面试题及详细答案(实战向)

一、基础认知类

1.为什么要用线程池?手动newThread有什么问题?

参考答案:

手动创建线程存在很多弊端,生产环境几乎不会直接newThread,核心问题有四点:

第一,频繁创建销毁线程开销极大。线程是操作系统资源,创建、初始化、销毁都需要耗费CPU和内存资源,高频任务场景下,大量时间会浪费在线程创建销毁上,而非业务执行。

第二,无线程数量管控。手动创建线程没有上限,高并发时会创建大量线程,导致系统线程溢出、CPU频繁上下文切换,最终引发OOM或者服务卡死。

第三,线程管理混乱。手动线程无法统一管理生命周期,无法监控线程状态、任务执行情况,异常也难以统一处理。

第四,任务复用性差。每次任务都要新建线程,无法实现线程复用,资源利用率极低。

而线程池可以复用线程、控制并发数量、统一管理任务、减少资源开销,同时支持任务排队、拒绝策略、超时控制,适配各类业务并发场景。

2.说说线程池的核心设计思想

参考答案:

核心就是线程复用+资源限流+任务缓冲。

提前初始化固定数量的工作线程,线程执行完任务后不会销毁,循环从任务队列获取新任务执行,避免频繁创建销毁线程;通过核心线程数、最大线程数限制系统最大并发量,防止压垮服务;通过阻塞队列缓冲来不及执行的任务,削峰填谷,保证并发平稳。

二、核心参数与执行原理(高频重点)

3.Thr

文档评论(0)

1亿VIP精品文档

相关文档