失效链接处理 |
面试必备:Java线程池解析 PDF 下载
本站整理下载:
相关截图:
![]()
主要内容:
# 前言
掌握线程池是后端程序员的基本要求,相信大家求职面试过程中,几乎都会被问到有
关于线程池的问题。我在网上搜集了几道经典的线程池面试题,并以此为切入点,谈
谈我对线程池的理解。如果有哪里理解不正确,非常希望大家指出,接下来大家一起
分析学习吧。
# 经典面试题
面试问题1:Java的线程池说一下,各个参数的作用,如何进行的?
面试问题2:按线程池内部机制,当提交新任务时,有哪些异常要考虑。
面试问题3:线程池都有哪几种工作队列?
面试问题4:使用无界队列的线程池会导致内存飙升吗?
面试问题5:说说几种常见的线程池及使用场景? # 线程池概念 线程池: 简单理解,它就是一个管理线程的池子。
它帮我们管理线程,避免增加创建线程和销毁线程的资源损耗。因为线程其实也
是一个对象,创建一个对象,需要经过类加载过程,销毁一个对象,需要走GC垃
圾回收流程,都是需要资源开销的。
提高响应速度。 如果任务到达了,相对于从线程池拿线程,重新去创建一条线程
执行,速度肯定慢很多。
重复利用。 线程用完,再放回池子,可以达到重复利用的效果,节省资源。
# 线程池的创建
线程池可以通过ThreadPoolExecutor来创建,我们来看一下它的构造函数:
几个核心参数的作用:
corePoolSize: 线程池核心线程数最大值
maximumPoolSize: 线程池最大线程数大小
keepAliveTime: 线程池中非核心线程空闲的存活时间大小
unit: 线程空闲存活时间单位
workQueue: 存放任务的阻塞队列
threadFactory: 用于设置创建线程的工厂,可以给创建的线程设置有意义的名
字,可方便排查问题。
handler: 线城池的饱和策略事件,主要有四种类型。
|