漫画Java线程池的工作机制

线程池

结构图

线程池是一套围绕着核心线程、非核心线程、等待队列的任务调度框架。

默认情况,线程池主要结构如下:

corePoolSize

核心线程数

当前线程池中运行的线程数量还没有达到 corePoolSize 大小时,线程池会将任务直接提交给核心线程执行

BlockingQueue

等待队列

如果当前线程池中运行的线程数量已经达到 corePoolSize ,新提交的任务会被加入到等待队列

直到某一个"核心线程"执行任务完毕,处于空闲状态,线程池会等待队列中取出一个新的任务执行

maximumPoolSize

最大线程数量

当线程数大于corePoolSize 数量,并且等待队列已满,但是还没有达到最大线程数maximumPoolSize,则线程池会创建新的"非核心线程"来执行任务

RejectedExecutionException

任务拒绝策略

如果提交的任务,无法被核心线程直接执行,又无法加入等待队列,又无法创建“非核心线程”直接执行,线程池将根据拒绝处理器定义的策略处理这个任务

往期精选

Java命令行工具之 jstat

彻底弄懂Lambda和高阶函数

不要让你的Java对象"逃逸"了!

源码分析Java虚拟机中锁膨胀的过程

大话Java对象在虚拟机中是什么样子?

Java虚拟机究竟是如何处理SoftReference的

最后说一句

原创不易,如果觉得写得不错就点个"在看"吧,或者转发更佳????????????

也可以加我微信,加群讨论更多技术问题

或者关注公众号,查看更多文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值