当前位置: 首页 > article >正文

线程池面试题目集合

最近面试中总是问到ThreadPoolExecutor类相关问题,在此集中整理下。

问题1.ThreadPoolExecutor的关键参数是哪些,任务添加过程中,内部线程是怎样构建的?

a)任务到达时,线程池数目小于核心线程数corePoolSize,则创建新的线程运行任务。

b)任务到达时,线程池数据大于等于核心线程数corePoolSize,则把任务放入blockingQueue中。

c)任务到达时,当blockingQueue已经放满时,同时线程池数目小于maximumPoolSize,则新建线程处理新到达的任务。

d)任务到达时,blockingQueue已经放满,同时线程池数目等于maximumPoolSize,则交给RejectHandler处理。

问题2:使用的等待队列容量有限制吗?

当你回答没有限制的时候,接着问题就来了,这样会有什么问题?那就是队列原来越长,最终容易OOM。

当你回答有限制的时候,接着的问题就是:那么当队列满的时候,按照blockingQueue的策略,不是应该block住吗?怎么会到达步骤c)呢?

注意:这里是一个陷阱。从源代码中可以,这里从blockingQueue中放入任务是使用的offer方法,非阻塞调用。

问题3:使用线程池时,怎样设置这些参数?

详细细节参考文章:
24张图带你彻底弄懂 Java 线程池 | 二哥的Java进阶之路


http://www.kler.cn/a/508819.html

相关文章:

  • Linux:磁盘分区
  • 44.ComboBox的数据绑定 C#例子 WPF例子
  • 如何通过高防服务隐藏服务器源IP
  • C++(二十一)
  • RabbitMQ前置概念
  • macos arm 本地/docker/本地k8s 安装jupyterhub 并登陆
  • LLM - 大模型 ScallingLaws 的 C=6ND 公式推导 教程(1)
  • 1.Spring AI 从入门到实践
  • 2025年应用与API安全展望:挑战与机遇并存
  • 青少年编程与数学 02-007 PostgreSQL数据库应用 05课题、结构化查询语言(SQL)
  • 1.6 阅读k8s源码的准备工作
  • Android 12.0 息屏休眠后立即启动屏保功能实现
  • SpringMVC 实战指南:打造高效 Web 应用的秘籍
  • 外包公司名单一览表(成都)
  • 《C++11》中的显式虚函数重载:深入理解与应用
  • 【数据分析(二)】初探 Pandas
  • Java中线程的学习
  • EI Scopus双检索 | 2025年第四届信息与通信工程国际会议(JCICE 2025)
  • redis.call()和redis.pcall()的区别
  • uniapp 微信小程序 editor 富文本编辑器
  • SpringBoot中Get请求和POST请求接收参数详解
  • STM32--定时器输出pwm知识点_stm32 pwm-CSDN博客
  • Python毕业设计选题:基于django+vue的智能租房系统的设计与实现
  • 彩色图像面积计算一般方法及MATLAB实现
  • 电脑换固态硬盘
  • 瑞芯微开发板/主板Android配置APK默认开启性能模式方法