临汾山东漯河饰品美体美文
投稿投诉
美文创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品
漯河衢州
兴义眉山
桂林阳泉
玉溪简阳
山东遂宁
永城新余
梧州洛阳
泸州温州
临汾清远
营口常熟
浙江大连
桐乡宜昌

任务执行器接口

8月28日 鬼神氏投稿
  任务执行器
  前面我们介绍了最简单的任务执行器接口Executor,它仅仅定义一个方法,即voidexecute(Runnablecommand)。但实际工程中我们可能需要对任务进行某些控制,或者对任务执行器的生命周期进行管理,此时Executor接口就无法满足要求了。于是ExecutorService接口应运而生,它是Executor接口的加强版。
  ExecutorService接口
  ExecutorService接口位于java。util。concurrent包下,该接口继承了Executor接口。为了加强对执行器的控制和对有返回值任务的执行,该接口增加了很多新方法,比如关闭执行器的方法、查看执行器状态的方法、提交Callable任务的方法等等。该接口包含的方法较多,这里只列出一些常用的方法,我们主要还是去理解执行器的设计思路。
  shutdown方法,用于关闭执行器,调用该方法后停止接收新任务,但已经提交给执行器的任务将继续执行完毕。
  isShutdown方法,执行器是否已关闭。
  iSTerminated方法,执行器是否已终止。
  awaitTermination方法,阻塞等待执行器直到其终止。
  submit(Callable)方法,向执行器提交一个具有返回值的任务。
  ExecutorService接口
  自定义任务执行器
  下面我们通过自己实现一个简易的任务执行器来加深对ExecutorService接口的理解,该任务执行器中主要包括任务队列和工作线程,工作线程不断从任务队列取出任务并执行。同时根据ExecutorService接口的定义我们还需要实现执行器的关闭操作及状态查询,此外还需要支持执行具有返回值的任务。
  任务执行器
  我们定义一个MyExecutorService类,该类实现了ExecutorService接口。先看属性,isShutdown和isTerminated分别表示是否关闭和是否已终止。taskQueue是一个列表结构的任务队列,workers是工作线程,这里创建了5个工作线程,count之所以用了AtomicInteger是为了让执行器能在多线程中正确关闭。lock用于实现线程阻塞通知功能,因为awaitTermination方法要阻塞到执行器终止。接着看构造函数,我们会在构造函数中创建工作线程并启动它们,启动后的线程不断从任务队列中取出任务并执行,其中会根据isShutdown标识决定是否要跳出循环,跳出循环则意味着工作线程死亡结束。由于我们希望在关闭任务管理器时能将原来在任务队列中的队列执行完,所以还加了个taskQueue。isEmpty()作为判断条件。
  构造函数与属性
  接着看各个方法的实现,shutdown直接将isShutdown置为true,结合execute方法来看,当isShutdown为true时则任务不会继续被添加到任务队列中了,而且工作线程也会在任务队列为空时死亡。再看awaitTermination方法,它只需直接进入阻塞即可,在任务执行器终止时会通过termination条件唤醒阻塞的线程。submit方法将传入的Callable对象封装成FutureTask对象,然后添加到任务队列中,最后返回Future对象。
  所有方法
  例子一
  根据我们实现的MyE
  {!PGCCOLUMN}
  xecutorService类来编写第一个例子,MyTask对象睡眠一秒钟,以下为输出结果,由于执行器中只有5个工作线程,所以最多只能五个任务并发执行。主线程启动了另外一个线程在睡眠10秒后对执行器进行shutdown操作,主线程调用awaitTermination方法后开始阻塞,直到执行器终止后主线程才能继续往下。
  输出结果
  例子一
  例子二
  第二个例子展示具有可返回值的任务,MyTask需要实现Callable接口,然后在call方法中定义任务。将任务提交给执行器后调用Future的get方法将使主线程进入阻塞状态,直到任务执行完毕返回结果,最终输出receiveresult:taskresult。
  例子二
  本专栏的所有代码都会同步更新到我的github上,需要的朋友可以去下载,这里禁止发地址,那就截个图吧。另外,麻烦各位能给专栏给个好评,在此谢谢各位了。
  跟着作者的70节课彻底搞懂Java并发原理专栏,一步步彻底搞懂Java并发原理。
  作者简介:笔名seaboat,擅长人工智能、计算机科学、数学原理、基础算法。出版书籍:《图解数据结构与算法》、《Tomcat内核设计剖析》、《人工智能原理科普》。
  作者的三个专栏:
  更多Java并发原理内容敬请关注70节课彻底搞懂Java并发原理专栏!
  更多Java并发原理内容敬请关注40节课彻底搞懂数据结构与算法专栏!
  更多Java并发原理内容敬请关注人工智能原理科普专栏!
投诉 评论 转载

童年经历对性格影响比你想象的大最近热播的《我家那小子》里,其实可以讨论的心理学现象很多。之前因为朱雨辰的妈妈行为太典型,而一度被推上风口浪尖。其实,这种家庭,也只是中国家庭的日常而已,不知道有多少。……不上班如何在家挣钱aclasstaghrefwiki10797ICaBEnP3。html上班a压力大,时间又不自由,那么不上班可以在家挣钱吗?不上班如何在家挣钱呢?一起来看看吧。操作方法……备战双双备战准备备战双需要做什么大促将至,如何应对千军万马?您家的客服团队准备好了吗?你知道优异的淘宝客服可以留住更多的用户,促成更多的交易额吗?活动前后,客服要发挥怎样的作用你知道吗?下面,就是我们针对活动……任务执行器接口任务执行器前面我们介绍了最简单的任务执行器接口Executor,它仅仅定义一个方法,即voidexecute(Runnablecommand)。但实际工程中我们可能需要对……自媒体原创文章没推荐是怎么回事那是因为你没注意到自媒体原创文章没推荐,是怎么回事?那是因为你没注意到这一细节很多做自媒体的小伙伴跟准哥聊天时,都会问起,为什么我自己纯手打的原创文章,都没有推荐呢?我们都知道,自媒……你不是迷茫你是太浮躁你凭什么不努力以前写过一篇【有一种集体焦虑,叫如何掌控人生?】年轻人该如何面对迷茫期?最近发现依然绕不开迷茫的话题。有人说:世界上人们都很好,凭什么你扛不住?成功的人,扛不……诗经桑扈原文翻译及赏析交交桑扈,青雀叫得悦耳动听,有莺其羽。羽毛光洁色彩分明。君子乐胥,大人君子各位快乐,受天之祜。受天保佑得享福荫。交交桑扈,可爱的青雀真灵巧,有莺其……被亲生母亲棒打鸳鸯遭朝中佞臣无辜陷害谈起陆游,很多人会对王师北定中原日,家祭无忘告乃翁的临终嘱托悲叹不已。其实,他一生放不下的又何止家国山河。他的心中,还有一位萦绕不散的女子,以及一场坚持不懈的诗事。做一件……多年前那个闷热到窒息的夏天1:hr6月5日,是重庆大轰炸纪念日。从1938年2月到1944年12月,在长达6年10个月的残酷日子里,侵华日军对重庆展开了惨无人道的疯狂大轰炸,以期能让中国人民屈服于……宋江为什么要在临死前药死李逵说到宋江其实很多人都觉得这个人也还是蛮有个性的,也比较出彩,所以才能在梁山做头把交椅,但是最后的结果我们先不论,就是宋江在临死的时候,为什么会选择把李逵给毒死,很多人想不明白这……妈妈做件事让宝宝变聪明1、爱婴儿迫切需要爱,尤其是最早的几周和几个月。婴儿并不是要操纵或控制您;从生物学角度讲,她只是需要您的爱。对他的哭闹有所反映并不会宠坏孩子。如果您一直对婴儿的哭闹……女性宫寒怎么调理最快妙招调理宫寒很多宫寒的女性会出现月经延后的问题,少则推迟十多天,多则两三个月,不管推迟时间有多长都会影响到排卵。没有排卵,当然会影响怀孕甚至导致不孕。可想而知,女性宫寒的危害有多大。那么女……
和产品设计差异化思考视频视频视频科幻的盆景十二星座女的最佳恋人梦见自己哭切开的木瓜发芽了可以吃吗阿玛尼高定私藏香水清新系列什么时候上阿玛尼高定私金枝玉叶为什么都变成绿了如何用竖列的表格求和欧文正品怎么辨别怎样去掉论文参考文献上的横线莫高窟在哪个省华硕笔记本显示驱动程序怎么下载安装

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找