Java面试被问线程池,答对这5点就够了

发布时间:2026/9/30 11:30:49
Java面试被问线程池,答对这5点就够了 线程池是Java并发编程的核心也是面试中几乎必问的考点。很多人能背出七大参数却说不清执行流程、拒绝策略和调优思路。其实面试官想考察的无非是这5个关键点答对了基本就能过关。第1点七大参数与执行流程线程池的核心构造参数有七个corePoolSize核心线程数、maximumPoolSize最大线程数、keepAliveTime空闲存活时间、unit时间单位、workQueue工作队列、threadFactory线程工厂、handler拒绝策略。执行流程是面试必问提交任务时若当前线程数小于核心线程数直接创建核心线程执行若核心线程已满任务进入工作队列若队列已满且线程数小于最大线程数创建非核心线程若线程数达到最大且队列也满触发拒绝策略。关键点核心线程默认不会回收除非设置allowCoreThreadTimeOut(true)。非核心线程空闲超过keepAliveTime后销毁。第2点四种拒绝策略及选择当线程池无法接收新任务时由拒绝策略处理。JDK提供四种AbortPolicy默认抛出RejectedExecutionException调用方需捕获处理适合关键业务。CallerRunsPolicy由提交任务的线程自己执行能降低提交速度形成负反馈适合不允许丢任务的场景。DiscardPolicy静默丢弃不抛异常风险高仅适合无关紧要的任务。DiscardOldestPolicy丢弃队列中最旧的任务再尝试提交可能丢失重要任务。面试加分实际项目中建议自定义拒绝策略记录日志并报警避免任务无声丢失。第3点线程池状态与关闭线程池有五种状态RUNNING、SHUTDOWN、STOP、TIDYING、TERMINATED。状态流转是理解关闭行为的关键。shutdown()状态变为SHUTDOWN不再接收新任务但会执行完队列中已有任务。shutdownNow()状态变为STOP不再接收新任务尝试中断正在执行的任务并返回队列中未执行的任务列表。注意shutdownNow()不保证立即停止需要任务响应中断。生产环境关闭线程池时通常先shutdown()等待一段时间后再shutdownNow()并配合awaitTermination。第4点线程数设置与队列选择线程数设置没有银弹取决于任务类型CPU密集型线程数 ≈ CPU核数 1减少上下文切换。IO密集型线程数 ≈ CPU核数 × (1 平均等待时间/平均计算时间)通常可设为核数的2倍以上。队列选择同样关键。LinkedBlockingQueue默认无界容易堆积任务导致OOMArrayBlockingQueue有界更安全SynchronousQueue不存储任务直接移交适合高吞吐场景。最佳实践使用有界队列并配合合理的拒绝策略防止资源耗尽。第5点异常处理与监控execute()提交的任务若抛出异常会直接打印到控制台且线程可能终止submit()会捕获异常并封装到Future中只有调用get()才会抛出。因此推荐使用submit()并处理Future或在任务内部用try-catch兜底。监控方面关注核心指标活跃线程数、队列大小、已完成任务数、拒绝任务数。可通过ThreadPoolExecutor的getter方法获取并接入Micrometer或Prometheus。自定义ThreadFactory给线程命名便于排查问题。总结面试回答线程池按这5点展开即可参数与流程、拒绝策略、状态与关闭、线程数与队列、异常与监控。如果能结合业务场景说明选型理由比如“订单系统用CallerRunsPolicy保证不丢单”就能让面试官看到你的实战经验。线程池不是配置完就万事大吉持续监控和动态调优才是高手与普通人的分水岭。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询