笔记来源:Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程
一、线程池概述
概念:
(资料图片仅供参考)
线程池就是一个可以复用线程的技术。
不适用线程池的问题:
如果用户每发起一个请求,后台就创建一个新线程来处理,下次新任务来了又要创建新线程,而创建新线程的开销是很大的,这样会严重影响系统的性能。
工作原理:
线程池通过提供固定的核心线程(工作线程WorkThread)和任务队列(WorkQueue)来工作,当核心线程都在忙时,新来的任务进入任务队列,等待核心线程的处理。
二、线程池实现的API、参数说明
JDK5.0起提供了代表线程池的接口,ExecutorService。
ExcutorService常用方法:
void execute(Runnable command):执行任务/命令,没有返回值,一般用来执行Runnable任务。
Future<T> submit(Callable<T> task):执行任务,返回未来任务对象获取线程结果,一般拿来执行Callable任务。
void submit():等任务执行完毕后关闭线程池。
List<Runnable> shutdownNow():立刻关闭,停止正在执行的任务,并返回队列中未执行的任务。
如何得到一个线程池对象:
方式一:使用ExecutorService的实现类ThreadPoolExecutor自创建一个线程池对象。
ThreadPoolExecutor构造器的参数说明:
指定线程池的线程数量(核心线程):corePoolSize,不能小于0。
指定线程池可支持的最大线程数:maximumPoolSize,最大数量>=核心线程数量。
指定临时线程的最大存活时间:keepAliveTime,不能小于0。
指定存活时间的单位(秒、分、时、天):unit,时间单位。
指定任务队列:workQueue,不能为null。
指定用哪个线程工厂创建线程:threadFactory,不能为null。
指定线程忙,任务满时,新任务来了怎么办:handler,不能为null。
方式二:使用Executors(线程池的工具类)调用方法返回不同特点的线程池对象。
Executors的底层也是基于线程池的实现类ThreadPoolExecutor创建线程池对象的。
Executors得到线程池对象的常用方法:
public static ExecutorService newCachedThreadPool():线程数量随着任务增加而增加,如果线程任务执行完毕且空闲了一段时间则会被回收掉。
public static ExecutorService newFixedThreadPool(int nThreads):创建固定线程数量的线程池,如果某个线程因为执行异常而结束,那么线程池会补充一个新线程替代它。
public static ExecutorService newStringThreadExecutor():创建只有一个线程的线程池对象,如果该线程出现异常而结束,那么线程池会补充一个新线程。
public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize):创建一个线程池,可以实现在给定的延迟后运行任务,或者定期执行任务。
Executors使用可能存在的陷阱:
大型并发系统环境中使用Executors如果不注意可能会出现系统风险。
可能会出现OOM错误(Java.lang.OutOfMemoryError)。
三、线程池处理Runnable任务
ThreadPoolExecutor创建线程池对象:
新任务拒绝策略:
ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常,是默认的策略。
ThreadPoolExecutor.DiscardPolicy:丢弃任务,但是不抛出异常,这是不推荐的做法。
ThreadPoolExecutor.DiscardOldestPolicy:抛弃队列中等待最久的任务,然后把当前任务加入队列中。
ThreadPoolExecutor.CallerRunsPolicy:由主线程负责调用任务的run()方法从而绕过线程池直接执行。
给一个任务给线程池处理:
四、线程池处理Callable任务
五、线程池常见面试题
临时线程什么时候创建?
新任务提交时发现核心线程都在忙,任务队列也满了,并且还可以创建临时线程,此时才会创建临时线程。
什么时候会开始拒绝任务?
核心线程和临时线程都在忙,任务队列也满了,新的任务过来的时候才会开始任务拒绝。
关键词:
(责任编辑:黄俊飞)推荐内容
- 后端 | Java | 线程池
- 美媒评现役30岁以上最强30人:威少无缘前
- 江西省人社厅:在全省技工院校开展校园食
- 西藏歌手男女歌手排行榜_西藏歌手
- 每日信息:新闻8点见丨京雄大桥合龙;是
- 创造与魔法精灵鱼有什么用(创造与魔法精
- 速递|一次性永久降低心血管疾病风险!礼
- 2013年以来完成防沙治沙近3500万亩 河北
- 半生年华歌词mc梦柯_半生年华_热文
- 环球短讯!聚焦省运会|辽宁省第十四届运
- 看点:晚上睡觉出汗是怎么回事啊_晚上睡
- 手机默认打开方式修改 vivo_手机默认打
- 阿根廷四五月份19%进口额以人民币结算
- 环球消息!她靠造黄谣,涨了100万粉丝,
- 2023年印尼羽毛球公开赛半决赛赛况:陈雨
- 官方:安铉范肩部关节扭伤需3-4周恢复,
- 速递!开心马骝刘德华容祖儿视频_开心马
- 南通市农村人居环境整治提升评估组来南莫
- 全球热议:世界最高坝正式启动大坝浇筑
- 研究测算全国城镇污水处理系统的节水减碳
- 邓正红能源软实力:石油软实力活动徘徊不
- 当前资讯!哲学是什么学科 哲学是什么
- 西门子与中国信通院签署战略合作协议
- 阿诗丹顿热水器官网(阿诗丹顿热水器)
- 纪录片《大河奔流》|陕西篇
- 中海油股票代码,中海油股票行情 世界观
- 全球信息:民航局:尽快研究出台《运输机
- 六折是百分之多少_六折是百分之六十|世界
- 怎么检查苹果手机是不是原装新机_怎么检
- 美菲罗莉_关于美菲罗莉介绍_世界今热点
- 每日热点:队记扔下重磅炸弹!勇士预计将
- 以好口碑赢得市场
- 经济日报携手京东发布数据—— 户外运动
- 即时焦点:萍乡市安源区车辆违章收费标准
- word自动求和在哪里(word求和在哪里)|
- pc3200(关于pc3200的基本详情介绍)_世
- 【环球快播报】死神vs火影3.4变身_死神vs
- 股票行情快报:巨力索具(002342)6月16
- 永远的七日之都安线完整攻略_永远的7日之
- 黄蜂官方: 乔丹已和买方达成协议 球队
- 运动户外 篇二十六:大夏天的去运动,穿
- 头条焦点:华宝新能(301327.SZ)向111名激
- 中国交通建设(01800.HK):中交城投注册资
- [路演]新天然气:将坚定不移深耕清洁能源
- 微星推出MAG GL系列电源:支持ATX 3.0/
- 重生赛迦奥特曼小说(重生之赛迦)_天天
- 全球聚焦:鲜切花百合花开花后怎么养 百
- 2023河北高考成绩什么时候公布?
- 蔚来ET5旅行版上市,起售价29.8万元
- 春雪食品(605567.SH):使用“春雪”品牌
- 土桥社区:开展2023年“安全宣传咨询日”
- 梅西在娱乐圈有多受欢迎_内娱掀起追星热
- 快资讯丨疯狂爆梗王一切会好怎么通关
- 【全球新视野】脾气暴躁易怒的原因_脾气
- ST新研:公司已向深交所申请撤销公司其他
- 南航即将复航武汉至迪拜、曼谷国际航线-
- 您现在可以通过FaceTime与朋友一起观看Yo
- 青藏线失联近一个月的货车司机遇难:在附
- 【焦点热闻】百年人寿泰安中支开展2023年
- 小美人鱼导演解释了为什么哈里斯泰尔斯没
- 邓正红能源软实力:石油软实力活动徘徊不
- 当前资讯!哲学是什么学科 哲学是什么
- 西门子与中国信通院签署战略合作协议
- 阿诗丹顿热水器官网(阿诗丹顿热水器)
- 纪录片《大河奔流》|陕西篇
- 中海油股票代码,中海油股票行情 世界观
- 全球信息:民航局:尽快研究出台《运输机
- 六折是百分之多少_六折是百分之六十|世界
- 怎么检查苹果手机是不是原装新机_怎么检
- 美菲罗莉_关于美菲罗莉介绍_世界今热点
- 每日热点:队记扔下重磅炸弹!勇士预计将
- 以好口碑赢得市场
- 经济日报携手京东发布数据—— 户外运动
- 即时焦点:萍乡市安源区车辆违章收费标准
- word自动求和在哪里(word求和在哪里)|
- pc3200(关于pc3200的基本详情介绍)_世
- 【环球快播报】死神vs火影3.4变身_死神vs
- 股票行情快报:巨力索具(002342)6月16
- 永远的七日之都安线完整攻略_永远的7日之
- 黄蜂官方: 乔丹已和买方达成协议 球队
- 运动户外 篇二十六:大夏天的去运动,穿
- 头条焦点:华宝新能(301327.SZ)向111名激
- 中国交通建设(01800.HK):中交城投注册资
- [路演]新天然气:将坚定不移深耕清洁能源
- 微星推出MAG GL系列电源:支持ATX 3.0/
- 重生赛迦奥特曼小说(重生之赛迦)_天天
- 全球聚焦:鲜切花百合花开花后怎么养 百
- 2023河北高考成绩什么时候公布?
- 蔚来ET5旅行版上市,起售价29.8万元
- 春雪食品(605567.SH):使用“春雪”品牌
- 土桥社区:开展2023年“安全宣传咨询日”
- 梅西在娱乐圈有多受欢迎_内娱掀起追星热
- 快资讯丨疯狂爆梗王一切会好怎么通关
- 【全球新视野】脾气暴躁易怒的原因_脾气
- ST新研:公司已向深交所申请撤销公司其他
- 南航即将复航武汉至迪拜、曼谷国际航线-
- 您现在可以通过FaceTime与朋友一起观看Yo
- 青藏线失联近一个月的货车司机遇难:在附
- 【焦点热闻】百年人寿泰安中支开展2023年
- 小美人鱼导演解释了为什么哈里斯泰尔斯没
- 女子名字出自诗经_女子名字-每日热点
- 全球快资讯丨网络上信用卡逾期多久会被起
- A股房企挣扎退市,高管已经很淡定:退了
- 中谷物流(603565):股价成功突破年线压
- 多不饱和脂肪酸最好的食物来源是_多不饱
- 小摩:港币-人民币双柜台模式可引资金流
- 那曲市索县:践行“五特”精神 守护一方
- 2023年A股机床工具股票龙头股一览(6/16
- 哥哥姐姐重返校园,为泡桐树幼儿园弟弟妹
- 男人会重新爱上初恋吗 男人会重新爱上初
- 万吨桥跳“双人舞”
- 天天热点!京东618华硕高管化身“快递小
- 多家基金公司放开限购 进一步提振市场信心
- 中工漫评丨央企APP,岂容有“李鬼”
- 厦门打造台青创新创业之城|天天消息
- 大院晒粮,塔内烘干——山东夏粮产后服务
- 看热讯:信号完整性实际设计中最常用的源
- 全球关注:在工体获胜后,梅西发文!球迷
- 全球微速讯:宫廷斗鸡电影_宫廷斗鸡
- 环球微头条丨创业板涉及5G的个股一览(6/15)