深度|决战固态电池!_环球热消息
纵观中国动力电池发展史,从行业追赶者到产业引领者,这既是一部不屈不
2023-06-151、corePoolSize:核心线程数
* 核心线程会一直存活,及时没有任务需要执行
* 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理
(资料图片)
* 设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭
2、queueCapacity:任务队列容量(阻塞队列)
* 当核心线程数达到最大时,新任务会放在队列中排队等待执行
3、maxPoolSize:最大线程数
* 当线程数>=corePoolSize,且任务队列已满时。线程池会创建新线程来处理任务
* 当线程数=maxPoolSize,且任务队列已满时,线程池会拒绝处理任务而抛出异常
4、 keepAliveTime:线程空闲时间
* 当线程空闲时间达到keepAliveTime时,线程会退出,直到线程数量=corePoolSize
* 如果allowCoreThreadTimeout=true,则会直到线程数量=0
5、allowCoreThreadTimeout:允许核心线程超时
6、rejectedExecutionHandler:任务拒绝处理器
* 两种情况会拒绝处理任务:
- 当线程数已经达到maxPoolSize,切队列已满,会拒绝新任务- 当线程池被调用shutdown()后,会等待线程池里的任务执行完毕,再shutdown。如果在调用shutdown()和线程池真正shutdown之间提交任务,会拒绝新任务* 线程池会调用rejectedExecutionHandler来处理这个任务。如果没有设置默认是AbortPolicy,会抛出异常
* ThreadPoolExecutor类有几个内部实现类来处理这类情况:
-AbortPolicy
丢弃任务,抛运行时异常- CallerRunsPolicy
执行任务- DiscardPolicy
忽视,什么都不会发生- DiscardOldestPolicy
从队列中踢出最先进入队列(最后一个执行)的任务
* 实现RejectedExecutionHandler接口,可自定义处理器
线程池按以下行为执行任务
1. 当线程数小于核心线程数时,创建线程。
2. 当线程数大于等于核心线程数,且任务队列未满时,将任务放入任务队列。
3. 当线程数大于等于核心线程数,且任务队列已满
-1 若线程数小于最大线程数,创建线程-2 若线程数等于最大线程数,抛出异常,拒绝任务1、默认值
* corePoolSize=1 * queueCapacity=Integer.MAX_VALUE * maxPoolSize=Integer.MAX_VALUE * keepAliveTime=60s * allowCoreThreadTimeout=false * rejectedExecutionHandler=AbortPolicy()
2、如何来设置
* 需要根据几个值来决定
-tasks
:每秒的任务数,假设为1000- taskcost
:每个任务花费时间,假设为0.1s- responsetime
:系统允许容忍的最大响应时间,假设为1s
* 做几个计算
- corePoolSize = 每秒需要多少个线程处理?
* 一颗CPU核心同一时刻只能执行一个线程,然后操作系统切换上下文,核心开始执行另一个线程的代码,以此类推,超过cpu核心数,就会放入队列,如果队列也满了,就另起一个新的线程执行,所有推荐:corePoolSize = ((cpu核心数 * 2) + 有效磁盘数),java可以使用Runtime.getRuntime().availableProcessors()获取cpu核心数
- queueCapacity = (coreSizePool/taskcost)*responsetime
* 计算可得 queueCapacity = corePoolSize/0.1*1。意思是队列里的线程可以等待1s,超过了的需要新开线程来执行
* 切记不能设置为Integer.MAX_VALUE,这样队列会很大,线程数只会保持在corePoolSize大小,当任务陡增时,不能新开线程来执行,响应时间会随之陡增。
- maxPoolSize = (max(tasks)- queueCapacity)/(1/taskcost)
* 计算可得 maxPoolSize = (1000-corePoolSize)/10,即(每秒并发数-corePoolSize大小) / 10
* (最大任务数-队列容量)/每个线程每秒处理能力 = 最大线程数
- rejectedExecutionHandler:根据具体情况来决定,任务不重要可丢弃,任务重要则要利用一些缓冲机制来处理- keepAliveTime和allowCoreThreadTimeout采用默认通常能满足ThreadPoolExecutor的执行流程有一点可能被吐槽过,就是只有缓存队列已经满了的时候才会使用到maxPoolSize创建新的线程.也就是说如果corePoolSize设为0的时候,要等到队列满了,才会创建线程去执行任务
之前有被问到,希望没有任务的时候线程池里的线程可以停掉。可能对性能和资源有过考虑的人都会想到这个问题吧
今天看JDK源码的时候发现了ThreadPoolExecutor在1.6的时候已经支持了
allowCoreThreadTimeOut参数就是为此设计的
/** * Sets the policy governing whether core threads may time out and * terminate if no tasks arrive within the keep-alive time, being * replaced if needed when new tasks arrive. When false, core * threads are never terminated due to lack of incoming * tasks. When true, the same keep-alive policy applying to * non-core threads applies also to core threads. To avoid * continual thread replacement, the keep-alive time must be * greater than zero when setting {@code true}. This method * should in general be called before the pool is actively used. * * @param value {@code true} if should time out, else {@code false} * @throws IllegalArgumentException if value is {@code true} * and the current keep-alive time is not greater than zero * * @since 1.6 */ public void allowCoreThreadTimeOut(boolean value) { if (value && keepAliveTime <= 0) throw new IllegalArgumentException("Core threads must have nonzero keep alive times"); if (value != allowCoreThreadTimeOut) { allowCoreThreadTimeOut = value; if (value) interruptIdleWorkers(); } }
在ThreadPoolExecutor构造函数的注释上也有明确说明:corePoolSize 的数量会一直保持,即使这些线程是空闲的,除非设置了allowCoreThreadTimeOut
/** * Creates a new {@code ThreadPoolExecutor} with the given initial * parameters and default thread factory and rejected execution handler. * It may be more convenient to use one of the {@link Executors} factory * methods instead of this general purpose constructor. * * @param corePoolSize the number of threads to keep in the pool, even * if they are idle, unless {@code allowCoreThreadTimeOut} is set * @param maximumPoolSize the maximum number of threads to allow in the * pool * @param keepAliveTime when the number of threads is greater than * the core, this is the maximum time that excess idle threads * will wait for new tasks before terminating. * @param unit the time unit for the {@code keepAliveTime} argument * @param workQueue the queue to use for holding tasks before they are * executed. This queue will hold only the {@code Runnable} * tasks submitted by the {@code execute} method. * @throws IllegalArgumentException if one of the following holds:
* {@code corePoolSize < 0}
* {@code keepAliveTime < 0}
* {@code maximumPoolSize <= 0}
* {@code maximumPoolSize < corePoolSize} * @throws NullPointerException if {@code workQueue} is null */ public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueueworkQueue) { this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, Executors.defaultThreadFactory(), defaultHandler); }
当然,在Executors的静态工厂里面的newCachedThreadPool提供了另外一种思路
coreSize为0 SynchronousQueue最多只能有一个任务在队列里面
也就是说这个线程池的任务会被立即分配一个线程去处理,如果没有空闲的线程会立即创建线程。
在空闲的时候,线程数量会减少直至为0,这一点倒是满足了要求。可是队列中最多只会缓存一个任务,当任务的处理速度慢于任务进入线程池的速度时,线程数量就会不断膨胀。如果maxPoolSize设置成一个比较小的数字时,可能就会有大量任务被拒绝策略处理。
所以正如注释中所说,newCachedThreadPool只适合于任务处理速度很快的场景下。比如做一些计算,不需要依赖其它服务
/** * Creates a thread pool that creates new threads as needed, but * will reuse previously constructed threads when they are * available. These pools will typically improve the performance * of programs that execute many short-lived asynchronous tasks. * Calls to {@code execute} will reuse previously constructed * threads if available. If no existing thread is available, a new * thread will be created and added to the pool. Threads that have * not been used for sixty seconds are terminated and removed from * the cache. Thus, a pool that remains idle for long enough will * not consume any resources. Note that pools with similar * properties but different details (for example, timeout parameters) * may be created using {@link ThreadPoolExecutor} constructors. * * @return the newly created thread pool */ public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue());
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
标签:
纵观中国动力电池发展史,从行业追赶者到产业引领者,这既是一部不屈不
2023-06-15记者从中国铁路南昌局集团有限公司(以下简称南铁)获悉,2023年端午假
2023-06-15(原标题:问诊贷款直播)近期关于贷款直播的话题引发业内关
2023-06-156月15日消息,中信证券研报指出,6月12日,宁德时代发布重卡底盘换电解
2023-06-15大吉!海淀四季青大地块由越秀竞得,越秀,金源,顺义区,海淀区,四季青,建
2023-06-15“依山傍水,生命绿动”。近日,由中建深装参建的顺应山势而建的康复花
2023-06-15初夏时节,位于邢台市西部太行山深处的云梦山景区层峦叠嶂,碧水如镜,
2023-06-15富时指数又被叫做富时100指数,具体是指由富时集团编制的股票指数。富
2023-06-15央视网消息(新闻联播):神舟十六号航天员乘组已在轨半个月,目前空间
2023-06-15文 周菊2023年6月13日,由经济观察报主办的梦想照进现实——自动驾驶发
2023-06-151、霁红釉是清康熙仿明宣德的产品,釉色不像郎窑红浓艳,也不如豇豆红
2023-06-141、温州乔奴服饰有限公司2、乔奴服饰整合了优质的产品研发、服装设计生
2023-06-1401预约人群16-26岁女性;不限户籍;仅限首针在本门诊接种过的居民预约
2023-06-14当前大家对于氧化铁脱硫剂都是颇为感兴趣的,大家都想要了解一下氧化铁
2023-06-14近日,广东深圳。男子暴饮暴食熬夜引发急性胰腺炎。陈先生妻子表示:老
2023-06-142023年全国高考结束,各地转入高考阅卷工作。目前,全国各地陆续公布今
2023-06-14今年6月是全国第22个安全生产月。为进一步加强安全生产知识宣传教育,
2023-06-14记者14日从滨海新区获悉,作为滨海新区高质量发展支撑引领行动八大工程
2023-06-14每经AI快讯,有投资者在投资者互动平台提问:董秘您好,公司2022年半年
2023-06-14周口日报全媒体记者高洪驰6月14日,河南省“万人助万企”活动第16服务
2023-06-142、171开头的手机号属于哪个公司天津。3、171手机话费充值平台。4、171
2023-06-14红楼梦中有很多擅长伪装的人,说白了就是会演戏的人,贾府的关系比较复
2023-06-14InfinixNote30VIP于周二在全球发布。这是今年5月初推出的InfinixNote30系列的
2023-06-141、标准试块尺寸是:内径150mm,高150mm圆柱体试模。2、无侧限抗压强度
2023-06-14,今天小编给大家整理2023传奇手游排行榜,游戏里的传奇世界boss限时开
2023-06-1406月14日江苏地区关于皮棉的报价为17552元 吨。皮棉的规格:3128B
2023-06-14好声音学员刘雅婷发文悼念张恒远,他们多年前在深圳偶遇,成为好友,张
2023-06-14据央视新闻客户端报道:6月14日,国台办发言人朱凤莲主持例行新闻发布
2023-06-146月13日,圣元环保(300867)融资买入201 68万元,融资偿还156 81万元
2023-06-14国际权威学术出版商爱思唯尔深圳办公室6月13日在前海揭牌。深圳市前海
2023-06-14工商企业管理专业的主干课程主要有微观经济学、宏观经济学、会计学原理
2023-06-142023年以来,A股结构性行情加剧,部分押注赛道的绩优基金产品出现回撤
2023-06-14同花顺数据中心显示,青岛银行6月13日获融资买入332 55万元,占当日买
2023-06-14不打自招!普京:因为卡霍夫卡大坝被炸毁,乌军才无法在那里反攻,普京,
2023-06-141、帕斯卡1623年出生在法国一位数学家家庭,他三岁丧母,由担任着税务
2023-06-14今年4月,国家知识产权局确定10个城市(地区)为首批国家知识产权保护
2023-06-14上海国际电影电视节元宇宙体验路演中心在亚洲首个影视PLUS元宇宙Metafi
2023-06-14数据来源京东消费及产业发展研究院近年来,电子产品快速普及、使用频率
2023-06-14战胜国米之后,曼城队史首次赢得欧冠冠军,成为史上第八支加冕三冠王的
2023-06-14豆来为大家解答以上的问题。上海电视台纪实频道官网,上海电视台纪实频
2023-06-14番禺两宗地块触顶摇号收金23 27亿,番禺,摇号,涉宅,土拍,流拍,广州市,商
2023-06-14民生银行首席经济学家温彬表示,5月M2同比增速延续高位回落,主要受去
2023-06-136月13日,理想汽车官方微信公众号发文称,在刚刚过去的2023年第24周(6
2023-06-13首发4999元ROG掌机正式发售:媲美PS5性能3A大作无压力
2023-06-13作为西咸新区沣东新城先进制造产业园核心区主要道路,日前,天章三路正
2023-06-131、江苏美术省统考考哪些江苏的美术高考分数线是按文化和美术的总分计
2023-06-13每天取送装有金条的快递,他渐渐感觉不对劲了……,方圆杂志6月13日讯,
2023-06-13中国的发展不舍昼夜,不断向前,无论白天还是夜晚都充满活力。《活力夜
2023-06-1303:18“我的相机里、收藏柜里,终于有了中国产的大飞机!”——孙晓蒙
2023-06-13林心如带女儿拍摄慈善宣传片,林心如母女合体,女儿依旧未露脸!6月12日
2023-06-13对于丧茶是什么意思是什么这个问题感兴趣的朋友应该很多,这个也是目前
2023-06-13仰望U8:合二为一,开辟市场过去的中国汽车市场,一个本土品牌想要突破
2023-06-13央视网消息:6月13日,国家游泳中心发布紧急通知称,因场馆外围市政供
2023-06-13中国报告大厅2023年6月13日N-甲基吡咯烷酮价格最新走势监测显示:安徽
2023-06-131、地疗:标间480元 天(打折后280元 天)(地方)矿疗:标间480元 天
2023-06-13西强东弱?近25年总决赛西部球队17次夺冠西部总战绩为84胜56负,热火队,
2023-06-13高压快充概念13日盘中强势拉升,和顺电气“20cm”涨停,迦南智能涨约15
2023-06-131、多数是数据线或者设置问题。2、删除所有打印任务,关闭打印机电源,
2023-06-131、病情分析:最近是否有胸部外伤或最近一周有呼吸道感染史。2、一般胸
2023-06-132023年06月13日(星期二),中国养猪网猪价系统数据监测如下:生猪(品
2023-06-13市委副书记、市长龚正昨天主持召开市政府常务会议,要求按照市委部署,
2023-06-131、尽管专业的OCR文字识别电脑端软件很多,手机APP也不少,但如果你想
2023-06-13来源:密探财经(ID:SpyFinance)“宏达系”的陨落,似乎跟“金融玩砸
2023-06-13IT之家6月13日消息,消息人士昨日向路透社透露称,欧盟反垄断监管机构
2023-06-13今年以来,发行债券成为券商机构重要的补充流动性的方式之一。Wind数据
2023-06-13带全尺寸备胎的车型有:长城C50、北京现代悦动(参数|询价)、东风标致30
2023-06-13第一时间提供各大券商研究所报告,最大程度减少个人投资者与机构之间信
2023-06-13罗云峰与长三角聚劲科创大赛嘉宾代表举行工作会谈
2023-06-131、压力容器安全操作规程(需上墙悬挂)一.总则1.压力容器操作人员必
2023-06-13北京时间6月12日深夜,巴黎传来消息:经联合国教科文组织人与生物圈计
2023-06-13先把两根细线依次穿进针孔里,之后让那两根线长短对折,而不是相等对折,
2023-06-13很多女性都知道哪种款式更适合自己。尖尖的细高跟鞋也可以搭配出精致的
2023-06-131、宁远一中:永州市重华北路8号宁远二中:九嶷中路133号宁远三中:重
2023-06-12大家好,今日关于【5月网约车行业运行情况公布】的话题登上了各大平台
2023-06-12近日,中集安瑞科旗下中集太平洋海工与液化气船船东AvanceGas,签订2+2
2023-06-121、智能马达控制器,适用于额定电压至AC690V、额定电流至AC800A、额定
2023-06-12工伤职工停工留薪期是指职工因工作遭受事故伤害或者患职业病后,需要暂
2023-06-12每年一度的“618”作为家电产品销售旺季,也是电视升级换代的最佳时机
2023-06-1256岁阿姨很豪爽,相亲当天就同居,第二天起床直呼自己太年轻,红娘,医生
2023-06-126月8日灞桥区“灞水英才荟”系列公开课第二期——“集智聚力展拳脚惠企
2023-06-122023年湖北省十堰市茅箭区面向全国公开招聘高层次人才报名已结束,根据
2023-06-12南宁6月11日电(记者吴思思)记者从广西壮族自治区粮食和物资储备局获
2023-06-12A股三大股指6月12日集体低开后,指数继续分化。早盘沪弱深强格局再现,
2023-06-12摘要:2023年06月12日新华制药(000756)主力资金净流入253 16万元,占
2023-06-12相信不少小伙伴都对漫威在20年有何计划都很是期待,因为在很早的时候,
2023-06-12REITs场内份额限售总量327,719,955份,除了GLP普洛斯资本投资4号香港有
2023-06-121、康德自诩他在哲学上做了一个“哥白尼式的革命”,就是说他在哲学上
2023-06-12根据刑法规定,构成对单位行贿罪的,处三年以下有期徒刑或拘役。单位犯
2023-06-12没有绿拇指?不用担心。你带回家的每一株新植物都不会在几周内死去。让
2023-06-12该校教员吴玲指导学员开展实验。
2023-06-12近日,地处大围山腹地浏阳市张坊镇道官冲非遗活态传承山村,逐渐热闹起
2023-06-116月,中原大地遍野金黄,田间地头一片繁忙收获景象。近日,河南宝丰县4
2023-06-11“蔚来预计二季度营收、车辆交付量均下降。”
2023-06-11《说史记:小说一样的历史》杨早 著后浪|北京联合出版公司鲁迅在《中国
2023-06-11来为大家解答以上的问题。黑天鹅蛋糕官网价格表,黑天鹅蛋糕这个很多人
2023-06-111、严格来说。2、八门之中。3、杜门是不属于吉门。本文就为大家分享到
2023-06-111、原料:金桂、白糖、米酒或高梁酒、桂园肉和十克白参、一百克红枣。2
2023-06-11新京报讯(记者王子扬)2023北京国际茶业展、北京马连道国际茶文化展、
2023-06-111、般说来论胸部罩杯大小正常乳晕直径3-5公分颜色粉红色乳晕随着青春期
2023-06-11Copyright © 2015-2022 南极水产网版权所有 备案号:粤ICP备2022077823号-13 联系邮箱: 317 493 128@qq.com