搞定Java大厂项目面试 轻松打动面试官
-------------------------------------------
下栽地止:https://www.itwangzi.cn/2382.html
-------------------------------------------
搞定Java大厂项目面试 轻松打动面试官
Java线程池概念
顾名思义,管理线程的池与手动创建和运行线程相比,使用线程池有以下优点
减少线程创建和线程销毁带来的开销
提高反应能力。 当任务到来时,相比手动创建线程,直接从线程池获取线程肯定要快很多
提高线程的可管理性。 线程是一种稀缺资源。 如果无限制地创建,不仅会消耗系统资源,还会降低系统稳定性。 线程池可用于统一分配、调优和监控
Java线程池的创建
无论创建什么类型的线程池(FixedThreadPool、CachedThreadPool...),都会调用ThreadPoolExecutor构造函数。 下面详细解释一下各个参数的作用
corePoolSize:最大核心线程数,一般来说就是线程池常驻线程的最大数量
MaximumPoolSize:线程池中运行的最大线程数(包括核心线程和非核心线程)
keepAliveTime:线程池中空闲线程(仅针对非核心线程)可以存活的最大时间
unit:生存时间单位,与keepAliveTime一起使用
workQueue:阻塞队列,用于存储任务
判断线程池中核心线程数量是否达到阈值corePoolSize,如果没有,则创建新的核心线程来执行任务
如果核心线程数已达到阈值corePoolSize,判断阻塞队列workQueue是否已满,如果未满,则向阻塞队列添加新任务
如果已满,则判断线程池中的线程数是否达到阈值maximumPoolSize,如果没有,则创建新的非核心线程来执行任务。 如果达到阈值,则执行线程池饱和策略。
线程池饱和策略分为以下几种:
AbortPolicy:直接抛出异常,默认策略
DiscardPolicy:直接丢弃任务
DiscardOldestPolicy:丢弃下一个要执行的任务(最旧的任务)
CallerRunsPolicy:在主线程中执行任务
几种常用的线程池
几种典型的工作队列
ArrayBlockingQueue:使用数组实现的有界阻塞队列,具有先进先出的特点
LinkedBlockingQueue:使用链表实现的阻塞队列。 其特点是先进先出,容量可设定。 默认为Interger.MAX_VALUE,特点是先进先出
PriorityBlockingQueue:使用平衡二叉树堆实现的优先级无界阻塞队列
举报/反馈
上一篇:上海市民下一站必游打卡地,你知道是哪里吗?
下一篇:“早入伏雨涟涟,晚入伏旱了田”,今年三伏天雨水多吗?答案来了
最近更新教育培训
- 丰林县:打好“组合拳” 稳岗促就业
- 进城务工人员随迁子女可在北京参加高职招考!今天17时截止——
- 政策|促进负责任创新与隐私保护:《科技伦理审查办法(试行)》解读
- 湖北教育行业微信9月TOP30榜:“湖北民族大学”等8个账号新晋榜单
- 晒课堂常规 看星湖学校促师生习惯养成
- “乡”味浓浓,侨后代千里返乡学潮菜
- 房车资讯:房车买个什么车好?正犹豫的你,请收下本篇测评!
- 张家界市总工会女职工芙蓉公益讲堂送课到永定区教师进修学校
- 广东2024年普通高考报名百问百答(一)
- “首批二孩”集中入学 看银川如何从容应对
- 【理通三迤】好品德造就干部好风尚
- 长春职业技术学院探索职教援外新路径
- 排名公开:贵阳精神病医院2023排名10月详情榜单
- 亳州教师勇救落水青年 彰显师者大爱
- 贵州省2023年下半年高等教育自学考试考前提示
- 10月17日起,贵州省2023年度全国社会工作者职业资格证书(纸质)可以领取啦!
- 四川北川:“羌山领头羊”计划让中学生成为科学实验的“研究者”
- 山东代表寄语妇女十三大丨刘莉:让巾帼之力在乡村振兴路上更加出彩
- “只要有孩子来读书,我就不会放弃”
- 原创国乒世界排名洗牌!王楚钦3项第1,张本智和暴跌,马龙第3难保
- 68125亿元!同比增长6%!山东前三季度“成绩单”出炉
- 文教融合共创未来
- 生态环境部、市场监管总局联合发布《温室气体自愿减排交易管理办法(试行)》
- 约老师轰22+12+7,掘金险胜灰熊!罗斯梦回巅峰,穆雷只打关键球
- 定档12月31日!2023深圳宝安马拉松报名今日开启