6699澳元汇率(2023年09月09日澳汇CN300指数是多少)
1、澳汇CN300有专门的文件说明,可以从官网下,也可以找他们的业务员要
2023-09-09jdk线程池ThreadPoolExecutor的7个参数
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueueworkQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) { if (corePoolSize < 0 || maximumPoolSize <= 0 || maximumPoolSize < corePoolSize || keepAliveTime < 0) throw new IllegalArgumentException(); if (workQueue == null || threadFactory == null || handler == null) throw new NullPointerException(); this.acc = System.getSecurityManager() == null ? null : AccessController.getContext(); this.corePoolSize = corePoolSize; this.maximumPoolSize = maximumPoolSize; this.workQueue = workQueue; this.keepAliveTime = unit.toNanos(keepAliveTime); this.threadFactory = threadFactory; this.handler = handler; }
corePoolSize
核心线程个数 ,int类型
(资料图片)
maximunPoolSize
最大线程数 ,int类型
keepAliveTime存活时间
传long类型的值,
当线程池中的线程数大于corePoolSize核心线程个数,且线程是闲置状态,则这些空闲线程的最大存活时间是KeepAliveTime
TimeUnit
存活时间的单位, 有时/分/秒/毫秒等可选配置
workQueue
存放待执行任务的阻塞队列, 可传入
arrayBlockingQueue 基于数组的有界阻塞队列;
linkedBlockingQueue基于链表的无界阻塞队列;
synchronousQueue最多只有1个元素的同步队列, 队列容量是1;
priorityBlockingQueue带优先级的无界阻塞队列,出队元素是优先级最高或最低的元素;
DelayQueue 带延迟功能的无界阻塞队列, 过期元素才会出队,队头元素是快要过期的元素.
以上几个Queue都是BlockingQueue的实现类
threadFactory
创建线程的工厂,
jdk提供了DefaultThreadFactory默认工厂,
用Executors.defaultThreadFactory()就行.
RejectedExecutionHandler拒绝策略
当队列满且线程数达到maximunPoolSize最大线程数后采取的策略, 可传入
AbortPolicy 抛出异常,这个是默认策略.
CallersRunPolicy 由调用者所在的线程执行任务
DiscardOldestPolicy 丢弃最老的任务
DiscardPolicy 丢弃新任务,不抛出异常
jdk封装了一个Executors类可以直接创建各种线程池,
用法形如
ExecutorService pool = Executors.newXXXXXPool()
可以用Executors类创建业务常用的3种线程池
固定线程池
public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nThreads, nThreads, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue()); }
创建一个核心线程数和最大线程数相同的线程池,都为nThreads,
且线程池的阻塞队列长度是Integer.MAX_VALUE,
且keepAliveTime=0,说明只要线程个数比核心线程个数多并且当前空闲则回收.
单线程线程池
public static ExecutorService newSingleThreadExecutor() { return new FinalizableDelegatedExecutorService (new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue())); }
创建一个核心线程数和最大线程数都是1的线程池,
且线程池的阻塞队列长度是Integer.MAX_VALUE,
且keepAliveTime=0,说明只要线程个数比核心线程个数多并且当前空闲则回收.
已缓存的线程池
public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue()); }
创建一个按需创建线程的线程池,初始线程个数为0,最多线程个数为
Integer.MAX_VALUE,并且阻塞队列为同步队列.
keepAliveTime=60,说明当前线程在60s内空闲则回收.
CachedThreadPool的特殊之处在于,加入同步队列的任务会被马上执行,同步队列里边最多只有1个任务.
使用创建好的ExecutorService 线程池执行异步任务
submit操作
提交一个任务, 任务参数可以是 Runnable实现类 或 Callable 实现类.
返回的类型是Future 表示异步计算的结果, 可以用future.get()方法拿到数据.
shutdown操作
调用shutdown方法后,线程池就不会再接受新的任务了,但是工作队列里边的任务还是要执行的, 该方法会立刻返回,不等待队列任务完成再返回.
使用线程池的情况下当程序结束时记得调用shutdown关闭线程池, 如果不关闭线程池,则会导致 线程池资源一直不被释放.
shutdownNow操作
调用shutdownNow方法后,线程池就不会再接受新的任务了,并且会丢弃工作队列里边的任务,正在执行的任务会被中断,该方法会立刻返回,并不等待激活的任务执行完成. 返回值为这时候队列里面被丢弃的任务列表.
awaitTermination操作
当线程调用awaitTermination方法后,当前线程会被阻塞, 直到线程池状态变为TERMINATED 才返回,或者等待时间超时才返回.
案例1-测试FixedThreadPool执行CallableTask任务
package cn.demo; import cn.hutool.core.util.RandomUtil; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class ExecutorTestsForCallableTask { public static void main(String[] args) throws ExecutionException, InterruptedException { String res1 = ""; String res2 = ""; String res3 = ""; String res4 = ""; ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3); //submit 提交4个任务, 实际执行时,任务是并发执行的,执行顺序不固定 Futuresubmit1 = fixedThreadPool.submit( new TestCallableTask(RandomUtil.randomInt(30,1000),"t1")); Future submit2 = fixedThreadPool.submit( new TestCallableTask(RandomUtil.randomInt(100,400),"t2")); Future submit3 = fixedThreadPool.submit( new TestCallableTask(RandomUtil.randomInt(30,350),"t3")); Future submit4 = fixedThreadPool.submit( new TestCallableTask(RandomUtil.randomInt(310,500),"t4")); res1 = submit1.get(); System.out.println(res1); res2 = submit2.get(); System.out.println(res2); res3 = submit3.get(); System.out.println(res3); res4 = submit4.get(); System.out.println(res4); fixedThreadPool.shutdown(); } }
package cn.demo; import cn.hutool.core.util.RandomUtil; import java.time.LocalDateTime; import java.util.concurrent.Callable; public class TestCallableTask implements Callable{ private int testIntVal; private String taskSeq; public TestCallableTask(int testIntVal, String taskSeq) { this.testIntVal = testIntVal; this.taskSeq = taskSeq; } @Override public String call() throws Exception { String s = LocalDateTime.now().toString(); System.out.println(s+"->"+taskSeq+" run ...."); int i = testIntVal; System.out.println(i); try { Thread.sleep(RandomUtil.randomInt(100,300)); } catch (InterruptedException e) { e.printStackTrace(); } if (i>300){ return "300more"; }else { return "300less"; } } }
案例2-测试FixedThreadPool执行RunnableTask任务
package cn.demo; import java.util.concurrent.*; public class ExecutorTestsForRunnableTask { public static void main(String[] args) throws ExecutionException, InterruptedException { String res1 = ""; String res2 = ""; String res3 = ""; String res4 = ""; ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3); //submit 提交4个任务, 实际执行时,任务是并发执行的,执行顺序不固定 Task1Param task1Param = new Task1Param(); task1Param.setUrl("f23r3r"); task1Param.setName("1heg43t34t34t"); FuturestringFuture = fixedThreadPool.submit( new TestTask1Runnable(task1Param), "success1 ok"); Task1Param t2 = new Task1Param(); t2.setUrl("gnsg2323"); t2.setName("2wwswer2r1asdaaws"); Future f2 = fixedThreadPool.submit(new TestTask1Runnable(t2), "success2 ok"); Task1Param t3 = new Task1Param(); t3.setUrl("thwasr23r"); t3.setName("3erzawfe23rawsf"); Future f3 = fixedThreadPool.submit(new TestTask1Runnable(t3), "success3 ok"); Task1Param t4 = new Task1Param(); t4.setUrl("mjkdsragt"); t4.setName("4tbertydraewrsfk"); Future f4 = fixedThreadPool.submit(new TestTask1Runnable(t4), "success4 ok"); res1 = stringFuture.get(); System.out.println(res1); res2 = f2.get(); System.out.println(res2); res3 = f3.get(); System.out.println(res3); res4 = f4.get(); System.out.println(res4); fixedThreadPool.shutdown(); } }
package cn.demo; import cn.hutool.core.util.RandomUtil; import java.time.LocalDateTime; public class TestTask1Runnable implements Runnable{ private Task1Param task1Param; public TestTask1Runnable(Task1Param task1Param) { this.task1Param = task1Param; } @Override public void run() { try { Thread.sleep(RandomUtil.randomInt(200,600)); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(task1Param.getName()); System.out.println(task1Param.getUrl()); String s = LocalDateTime.now().toString(); System.out.println(s+" TestTask1Runnable run ...."); } }
使用自定义的ThreadPoolExecutor来执行异步任务
package cn.demo; import cn.hutool.core.util.RandomUtil; import java.util.concurrent.*; public class TpeTest { private final static ThreadPoolExecutor pool = new ThreadPoolExecutor( 1,1, 1L, TimeUnit.MINUTES, new ArrayBlockingQueue(1), new ThreadPoolExecutor.CallerRunsPolicy()); public static void main(String[] args) throws ExecutionException, InterruptedException { Future submit1 = pool.submit( new TestCallableTask(RandomUtil.randomInt(30,1000),"t1")); Future submit2 = pool.submit( new TestCallableTask(RandomUtil.randomInt(100,400),"t2")); Future submit3 = pool.submit( new TestCallableTask(RandomUtil.randomInt(30,350),"t3")); Future submit4 = pool.submit( new TestCallableTask(RandomUtil.randomInt(310,500),"t4")); System.out.println("task1-"+submit1.get()); System.out.println("task2-"+submit2.get()); System.out.println("task3-"+submit3.get()); System.out.println("task4-"+submit4.get()); pool.shutdown(); } }
线程池使用FutureTask时需要注意的事情
线程池使用FutureTask时,如果把拒绝策略设置为 DiscardPolicy 和 DiscardOldestPolicy,并且在被拒绝的任务的Future对象上调用了无参get方法,那么调用线程会一直被阻塞.
如上面的代码,如果把CallerRunsPolicy替换成 DiscardPolicy 或 DiscardOldestPolicy ,就会导致任务一直被阻塞,一直无法取到future.get()的值.
到此这篇关于jdk线程池的实现的文章就介绍到这了,更多相关jdk线程池内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
标签:
1、澳汇CN300有专门的文件说明,可以从官网下,也可以找他们的业务员要
2023-09-09晓鸣股份(300967)09月09日在投资者关系平台上答复了投资者关心的问题。
2023-09-09在日常巡逻方面,五角场派出所采取视频与实兵巡逻相结合的形式,加强对
2023-09-09全新标致e-3008官图泄露,将推插混及纯电9月7日,全新设计的新标致3008
2023-09-09麦迪:我认为欧文是现今联盟单挑最强的后卫库里比尔等也很棒,麦蒂,麦迪
2023-09-09来为大家解答以上问题,eminem歌曲大全,eminem好听的歌很多人还不知道
2023-09-09在预制菜成为越来越多人餐桌“新宠”的今天,如何保证口味稳定,提升食
2023-09-08(记者 吴鹏泉)记者8日从江西省残疾人联合会获悉,江西省残联等江
2023-09-08土耳其vs亚美尼亚预测分析,风暴体育讯北京时间9月9日02:45,新赛季欧
2023-09-08深圳新闻网2023年9月8日讯(记者杨笑尘)今天上午,强降雨主要出现在罗
2023-09-08一、公寓适合居住吗公寓适合居住,比较适合SOHO办公族、年轻人想买套公
2023-09-08金鹰卡通卫视联合宜品纯羊奶粉推出的全国首档三孩家庭生活观察真人秀《
2023-09-08上证报中国证券网讯(记者严曦梦)第二十三届中国国际工业博览会(下称
2023-09-08香港交易所宣布,由于黑色暴雨警告现正生效,今天(星期五)证券(包括沪
2023-09-08每经AI快讯,有投资者在投资者互动平台提问:董秘您好:隆基绿能明确未
2023-09-08在当下“短平快”的“读图”时代,一些耳熟能详的经典作品总是被选择性
2023-09-08以下是慧博云通在北京时间9月1日10:27分盘口异动快照:9月1日,慧博云
2023-09-01马洛塔表示,自己没有想到卢卡库会去罗马,但这就是足球,足球就是马戏
2023-09-01浙江:到2025年建设加氢站50座以上2023年8月28日,浙江省发展和改革委
2023-09-01藏在山腰间的登鲁村。杨晓波 摄登鲁,四面环山,沟谷相连。如同巨大的
2023-09-01HELLO,我是智能手机网小溪,我来为大家解答以上问题。联想启天m6988,
2023-09-01格隆汇8月31日丨生兴控股(01472 HK)公告,由于张为国希望将更多时间投
2023-08-311、本科专业:经济学、国际经济与贸易、财政学、金融学、投资学、法学
2023-08-31备战亚运浙江金华铁路部门加强外语等相关培训---杭州亚运会将于9月23日
2023-08-31北京时间2023年8月31日15时36分,我国在西昌卫星发射中心使用长征二号
2023-08-31天健集团今日跌停,全天换手率5 01%,成交额6 32亿元,振幅10 58%。龙
2023-08-31Meta最近举办了一场虚拟键盘打字比赛,展示了RealityLabs虚拟键盘的功
2023-08-318月30日,区委副书记、区长支朝奇深入腰市镇调研督导乡村振兴、基层社
2023-08-31储蓄型重疾险将储蓄元素融入重疾险产品,在保障的同时带来了储蓄收益,
2023-08-31上海形成引才聚才“强磁场”,人民政协网是由人民政协报社主办,全方位
2023-08-311、邓氏编码是邓白氏拥有的一个独一无二的9位数字全球编码系统,它可以
2023-08-31近期,重庆市人大常委会审议通过《重庆市反间谍工作条例》(以下简称《
2023-08-31亚运会临近,站在萧山区体育中心望去,周边的环境面貌焕然一新。城厢街
2023-08-31环球汽车7月消息小杨来为大家解答以上问题,玖月奇迹简历,你知道玖月
2023-08-318月30日北向资金增持20 28万股三房巷。近5个交易日中,获北向资金增持
2023-08-31记者王文彬通讯员杨鹏宇今年来,惠民县桑落墅镇聚焦“一次办好”改革,
2023-08-30科思科技(SH688788,收盘价:元)8月30日晚间发布公告称,2023年8月24
2023-08-30“支持上市房企在资本市场融资,保持房企股债融资渠道稳定,支持正常经
2023-08-30以下为2022的,仅供参考,2023年活动公布以后会持续更新郑州方特梦幻王
2023-08-302023年8月30日键凯科技(688356)发布公告称公司于2023年8月29日召开业
2023-08-30河北受灾地区多措并举确保学生秋季如期开学
2023-08-30【外交部发言人汪文斌:日本应立即纠正向海洋排放核污染水的行为】中国
2023-08-30量化伏妖:技术指标粘合线金叉 技术上粘合线发生金叉,预示短线上涨
2023-08-30中新经纬8月30日电周三,A股三大指数集体高开,沪指高开0 27%,深成指
2023-08-30【财华社讯】方达控股(01521 HK)公布,于2023年08月29日回购100万股,
2023-08-30据央视新闻报道,当地时间8月28日,美国北卡罗来纳大学教堂山分校(UNC
2023-08-30易建联宣布退役,结束21年篮球生涯
2023-08-30昨日A股市场继续反弹,上证指数收涨1 2%,重回3100点大关;两大科创指
2023-08-30小尺寸的手机在当下依然有人爱着,那对于小尺寸的真无线耳机了,我觉得
2023-08-30挖贝网8月29日,花溪科技(872895)发布2023年上半年业绩报告,实现营
2023-08-29问:2023年郑州购房退税要满足哪些条件?答:自2024年1月1日至2025年12
2023-08-298月27日,由吉林省文学艺术界联合会、吉林省美术家协会、广东省文学艺
2023-08-29四川新闻网-首屏新闻成都8月29日讯(记者陈淋)8月29日,在第39个教师
2023-08-29您好,来为大家解答以上问题。无线网卡价格区别,无线网卡的价格很多人
2023-08-298月28日上午,临颍县王孟镇化庄小学院内锣鼓喧天,彩旗飘扬,鞭炮齐鸣
2023-08-298月28日,华为推出了“HUAWEIMate60Pro先锋计划”,在华为商城,12:08
2023-08-29龋坏的牙齿一阵一阵的刺痛,仿佛在警告你赶紧做治疗,一到医院,医生简
2023-08-29碧水青波荷香远,处暑虽过,浙江建德大慈岩依旧是“映日荷花别样红”的
2023-08-298月28日,会畅通讯(300578)发布2023年半年报。报告期内,公司实现营
2023-08-292023年8月28日,以“新时代·新摇篮·新力量·新突破”为主题的第十八
2023-08-29硕士学位类别是什么意思,硕士研究生的学位类别如何填写这个很多人还不
2023-08-298月28日下午,引力大湾区青年“兴”引擎——2023粤港澳大湾区社会组织
2023-08-28为更好备战亚锦赛和亚运会的国乒近日举办了队内热身赛,结果首日团体比
2023-08-28逐梦乡村|成为网红之后-网友喜欢刘元杰的努力、率性、真诚、豁达,这意
2023-08-28安杰思(688581)08月28日在投资者关系平台上答复了投资者关心的问题。
2023-08-28奇瑞e3重量多少奇瑞e3是奇瑞汽车公司生产的一款电动汽车,作为一款环保
2023-08-28,你们好,今天0471房产来聊聊一篇华,华简述的文章,网友们对这件事情
2023-08-282023年8月28日黄金首饰价格多少钱一克?日内国内黄金行情如何?以下是
2023-08-281水不是最补水的饮品补水指数是指液体在体内存留的时间,时间越久,补
2023-08-28香港《南华早报》8月26日文章,原题:对中国经济问题幸灾乐祸,美国将
2023-08-28连日来,走进云南曲靖市马龙区月望乡水箐村民小组,远远就能看见一群身
2023-08-28基本上,目前显示器领域要说普及了4K也不是啥大问题,当然如果是游戏用
2023-08-28对于众多的苹果粉丝来说,每年iPhone新机的发布都是一件令人兴奋的大事
2023-08-2727日,新开园不久的水上公园儿童乐园迎来5000多名游客。
2023-08-27智通财经讯,杰恩设计(300668 SZ)发布2023年半年度报告,公司营业收入3
2023-08-27扬州发布记者姜传刚文 图27日,记者在京杭大运河西岸的汤汪路北延工程
2023-08-278月20日,2023第二届无锡市魔方运动会(夏季赛)成功举办。此次赛事由
2023-08-27奥乌苏推远角破门扳回一球【张稀哲赛后采访】第一个进球比较幸运,取得
2023-08-27提前购票后开车前往港口,预约通道2秒便可自动识别,随后完成安检进入
2023-08-27,你们好,今天0471房产来聊聊一篇花社区-志愿者服务队,花社区-志愿
2023-08-271、寓言:有关夸张离奇,幻想奇异。2、重言:有关探讨前人,圣人提出的
2023-08-27海油工程消息,近日,“深海一号”二期工程新建平台段塞流捕集器在海油
2023-08-26作为一家坚持“长期主义”的央企开发商,中海将持续以“用户思维”去组
2023-08-26愿时光再慢一点,让陪伴再多一点
2023-08-26新一轮降雨过程已于8月25日上线,未来三天,强降雨将自西向东横扫我国
2023-08-26国米正式宣布和老将桑切斯完成签约,这次国米将会为桑切斯送上一份280
2023-08-26中新网8月26日电中国驻泰国大使馆微信公众号发布关于驻泰使领馆积极协
2023-08-26“认房不认贷”终于来了。8月25日,《证券日报》记者从住房和城乡建设
2023-08-26截至6月30日,科创板两融余额合计1072 89亿元,较上一交易日增加1 89亿
2023-08-26截至2023年8月25日收盘,福事特(301446)报收于31 52元,较上周的36 2
2023-08-26新的福特全顺和全顺定制商务车将采用该公司的新型EcoBlue柴油发动机。
2023-08-25格隆汇8月25日丨阳光股份(000608 SZ)披露2023年半年度报告,实现营业收
2023-08-25ST贵人(603555)08月25日在投资者关系平台上答复了投资者关心的问题。
2023-08-252004年,我离开成长的村庄,去40里外的县城读书,寄宿制,每月回家
2023-08-25宁波市自2023年9月1日起实施境外旅客购物离境退税政策。:宁波市自2023
2023-08-25直播吧8月25日讯据《罗马体育报》和《米兰体育报》报道,拉齐奥有意引
2023-08-258月25日午间评论周五上午A股市场呈现探底之后震荡消化的格局,截止午间
2023-08-25全球金属供应链稳定性面临挑战近年来,全球重要工业国都把关键矿产供应
2023-08-25此次挂牌转让底价9065万元,披露公告期为20个工作日,披露结束日期为20
2023-08-25“太空菜园”丰收了!中国空间站太空栽培喜获丰收---目前,国家太空实
2023-08-25Copyright © 2015-2022 大河水产网版权所有 备案号:京ICP备2022022245号-75 联系邮箱:435 226 40@qq.com