ThreadPoolExecutor
ThreadPoolExecutor是线程池框架的一个核心类,线程池通过线程复用机制,并对线程进行统一管理

- 降低系统资源消耗。通过复用已存在的线程,降低线程创建和销毁造成的消耗;
- 提高响应速度。当有任务到达时,无需等待新线程的创建便能立即执行;
- 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗大量系统资源,还会降低系统的稳 定性,使用线程池可以进行对线程进行统一的分配、调优和监控。
线程池的运行状态总共有5种,其值和含义分别如下:
- RUNNING: 高3位为111,接受新任务并处理阻塞队列中的任务
- SHUTDOWN: 高3位为000,不接受新任务但会处理阻塞队列中的任务
- STOP:高3位为001,不会接受新任务,也不会处理阻塞队列中的任务,并且中断正在运行的任务
- TIDYING: 高3位为010,所有任务都已终止,工作线程数量为0,线程池将转化到TIDYING状态,即将要执行 terminated()结束钩子方法
- TERMINATED: 高3位为011,terminated()方法已经执行结束
构造器中各个参数的含义:
1.corePoolSize
线程池中的核心线程数。当提交一个任务时,线程池创建一个新线程执行任务,直到当前线程数等于 corePoolSize;如果当前线程数为corePoolSize,继续提交的任务被保存到阻塞队列中,等待被执行。
2.maximumPoolSize
线程池中允许的大线程数。如果当前阻塞队列满了,且继续提交任务,则创建新的线程执行任务,前提是当前线 程数小于maximumPoolSize。
3.keepAliveTime
线程空闲时的存活时间。默认情况下,只有当线程池中的线程数大于corePoolSize时,keepAliveTime才会起作 用,如果一个线程空闲的时间达到keepAliveTime,则会终止,直到线程池中的线程数不超过corePoolSize。但是 如果调用了allowCoreThreadTimeOut(boolean)方法,keepAliveTime参数也会起作用,直到线程池中的线程数为 0。
4.unit
keepAliveTime参数的时间单位。
5.workQueue
任务缓存队列,用来存放等待执行的任务。如果当前线程数为corePoolSize,继续提交的任务就会被保存到任务缓 存队列中,等待被执行。
一般来说,这里的BlockingQueue有以下三种选择:
SynchronousQueue:一个不存储元素的阻塞队列,每个插入操作必须等到另一个线程调用移除操作,否则 插入操作一直处于阻塞状态。因此,如果线程池中始终没有空闲线程(任务提交的平均速度快于被处理的速 度),可能出现无限制的线程增长。 LinkedBlockingQueue:基于链表结构的阻塞队列,如果不设置初始化容量,其容量Integer.MAX_VALUE, 即为无界队列。因此,如果线程池中线程数达到了corePoolSize,且始终没有空闲线程(任务提交的平均速度 快于被处理的速度),任务缓存队列可能出现无限制的增长。 ArrayBlockingQueue:基于数组结构的有界阻塞队列,按FIFO排序任务。
6.threadFactory
线程工厂,创建新线程时使用的线程工厂。
7.handler
任务拒绝策略,当阻塞队列满了,且线程池中的线程数达到maximumPoolSize,如果继续提交任务,就会采取任 务拒绝策略处理该任务,线程池提供了4种任务拒绝策略:
- AbortPolicy:丢弃任务并抛出RejectedExecutionException异常,默认策略;
- CallerRunsPolicy:由调用execute方法的线程执行该任务;
- DiscardPolicy:丢弃任务,但是不抛出异常;
- DiscardOldestPolicy:丢弃阻塞队列前面的任务,然后重新尝试执行任务(重复此过程)。
- 当然也可以根据应用场景实现RejectedExecutionHandler接口自定义饱和策略,如记录日志或持久化存储不能处 理的任务。
相关推荐:
怎样利用AI写文章,轻松提升写作效率
ChatGPT当前不可用?如何应对AI服务中断的挑战,ai文章免费写作app
seo网站通过什么软件,网站seo软件哪个 ,战团ai
seo需要学些什么内容,学seo的基础 ,中国ai公司年收入
为什么seo对企业重要,seo对企业进行网络营销的价值 ,ai李沁换脸鲍鱼
SEO武汉:如何提升武汉地区网站的搜索引擎排名,景区网站建设费用
怎么用AI写文:让创作更轻松,效率翻倍
SEO外链建设:提升网站排名的关键策略,ai偏执
ChatGPT已识别但不可用?揭秘背后原因与解决方案!,小狸ai和斑马ai语文
怎么让AI润色文章,让写作更轻松?
SEO职位:数字营销的核心,开启职业新高峰,汕尾网站建设推广厂商
什么是神马排名?让你的网站脱颖而出,轻松占据搜索引擎的C位!,乳山网站优化关键词排名
ChatGPT中文版下载,开启智能对话新体验,婚纱ai男
“更加通顺”-让生活与工作无缝衔接的语言魅力,SEO书架书桌收纳
ChatGPT维护-智能时代的数字助手,如何让你的工作更高效,ai智能救援
SEM+SEO:助力企业数字化营销的双剑合璧之道,ai头像丑
ChatGPT回答问题,网页无法线下滚动?解决方案轻松get!,谷歌AI铃声
WPJVX:开启数字化未来的智慧平台,关键词排名技术咨询乐云seo
SEO优化引导新官网,助力企业迈向成功之路,宋轶ai换
ChatGPT为什么页面下拉不了?问题解析与解决方案,ai对准
AI搜索写文章是什么意思?人工智能赋能内容创作的未来,高德地图 ai
seo要会些什么,seo需要学些什么内容 ,轻盈ai
用AI修改文章,提升写作效率与质量的新时代
乘风SEO-引领企业互联网时代的腾飞之路,南昌b站关键词排名优化贵不贵
“收录量为1”,打造数字化时代的独特竞争力,网站建设页面制作流程
揭开“好的AI软件”背后的秘密:让生活和工作更智能的利器
产品经理seo是什么,产品经理seo是什么意思 ,ai政府公文写作 软件
SEO每日:提高网站流量的秘密武器,助你脱颖而出,seo优化和排名技巧
GPT版本全解:从基础到高级,如何选择最适合你的方案?,韩国ai人工智能
专业关键词助力SEO优化,让你的内容脱颖而出,东营响应式网站优化
SEO子-为你的网站注入流量的秘密武器,麻城网站网址优化
企业关键字-助力企业成功的隐形动力,闽侯县企业网站建设
内容创作新时代:自动生成文章的AI如何改变写作生态
优化提长:让企业效能提升的秘密武器,长沙网站建设创意
AI热门软件,未来科技的钥匙
亚马逊产品seo什么意思,亚马逊平台产品专业术语 ,小新同学ai
SEO调整,助力网站流量爆发式增长!,江都seo优化排名
seo灰帽是什么,灰帽是指什么 ,ai绘画六边形
ChatGPT为什么访问不了了?了解背后的原因与解决方法,AI怎么拖入路径
SEO教研:数字营销新趋势,提升网站流量与转化率的关键,齐鲁证券网站建设
SEO优化关键技巧:提升网站排名的实战攻略,科大讯飞ai论文写作软件
ChatGPT维护页面-背后的技术与用户体验,ai领域ppt
zblog站群,zblog怎么样 ,欧卡2ai汽车如何使用
AI免费生成文本,内容创作新篇章
SEO确实是企业增长的关键,这些技巧让你走在行业前沿,山东网站建设信息
ChatGPT免费版下载:智能对话助手带来的全新体验,电脑怎么下载Ai微认证
ChatGPT崩了?用户称打开是一片空白,真相竟然如此!,zzz*明星AI换脸
亚马逊seo信息是什么,亚马逊seo关键词优化软件 ,光谷ai
自动写文章的AI,提升效率的创作利器
ChatGPT198元永久会员,开启智慧之门,体验AI的极致服务!,老孙教ai