首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
数据库
›
分布式数据库
›
Java线程池
返回列表
发新帖
Java线程池
[复制链接]
发表于 2025-10-24 05:01:05
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
(一)线程池的上风
总的来说,池化技能都有以下几个上风
1.低落资源斲丧:镌汰了我们频仍地去创建和烧毁线程
2.进步相应速率:当任务到达时,任务不须要等候线程的创建,直接拿到一个线程就可以相应
3.便于管理:我们通过线程池同一的去管理我们全部线程,举行同一分配,调优和
监控
(二)线程池参数
我们来看一下每个参数都是什么意思
corePollSize(核心线程数):体现我们线程池最少有多少个线程,默认情况下,这些线程是不停存在的。只有到达了核心线程数再来一个任务我们才放到任务队列
maximumPoolSize(最大线程数):体现我们线程池最多能有几个线程,只有当我们任务队列满了,我们才去突破核心线程数,但是线程数要小于最大线程数
keepAliveTime(最大空闲时间):线程池中的非核心线程最大能空闲多久就要被接纳
unit(最大空闲时间的单元):指定keepAliveTime的时间单元
wordQueue(任务队列):通过线程池execute()方法提交的任务
存储
在该参数中,接纳壅闭队列实现
threadFactory(线程工厂):一个创建线程的工厂
handler(拒绝战略): 有以下四种
1)AbortPolicy():超出多大线程数,直接抛出非常
2)CallerRunsPolicy():调⽤者负责处理处罚多出来的任务.
3)DiscardOldestPolicy():扬弃队列中最⽼的任务.
4)DiscardPolicy():扬弃新来的任务.
(三)线程池的工作原理
我们用一张图体现
(四)任务队列(workQueue)
任务队列是通过壅闭队列实现的,我们大概分为两种一种是有界队列,一种是无界队列
有界队列:防内存溢出,以是有拒绝战略,也就是我们上面说的拒绝战略
无界队列:任务队列可以不停添加任务,知道内存耗尽,以是此时的最大线程数就没故意义了
那Java给我们提供了7种,我们大概相识一下就可以
(五)线程池的种类
1.定长线程池(FixThreadPool):线程池中线程数量固定,只有核心线程,当全部线程都在忙,任务就会在队列中等候
实用场景:控制线程最大并发数
2.定时线程池(ScheduledThreadPool):核心线程数固定,但优劣核心线程数无穷,实验完闲置10ms后举行接纳
实用场景:实验定时大概周期性任务
3.可缓存线程池(CachedThreadPool):没有核心线程,非核心线程数无穷,也就是线程池巨细动态调解,线程空闲60s后被接纳
实用场景:实验大量,耗时少的任务
4.单线程化线程池(SingleThreadExcutor):只有一个核心线程,没有非核心线程,实验完就接纳
实用场景:不适归并发但是大概引起IO壅闭的操纵
回复
使用道具
举报
返回列表
浏览过的版块
DevOps与敏捷开发
缠丝猫
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表