Future和FutureTask的区别

作者&投稿:检致 (若有异议请与网页底部的电邮联系)
Future和FutureTask的区别~

Future是一个接口,FutureTask是Future的一个实现类,并实现了Runnable,因此FutureTask可以传递到线程对象Thread中新建一个线程执行。所以可以通过Excutor(线程池)来执行,也可传递给Thread对象执行。
如果在主线程中需要执行比较耗时的操作,但又不想阻塞主线程时,可以把这些作业交给Future对象在后台完成,当主线程将来需要时,就可以通过Future对象获得后台作业的计算结果或者执行状态。
FutureTask是为了弥补Thread的不足而设计的,它可以让程序员准确地知道线程什么时候执行完成并获得到线程执行完成后返回的结果(如果有需要)。
FutureTask是一种可以取消的异步的计算任务。它的计算是通过Callable实现的,它等价于可以携带结果的Runnable,并且有三个状态:等待、运行和完成。完成包括所有计算以任意的方式结束,包括正常结束、取消和异常。
Executor框架利用FutureTask来完成异步任务,并可以用来进行任何潜在的耗时的计算。一般FutureTask多用于耗时的计算,主线程可以在完成自己的任务后,再去获取结果。

FutureTask是Future的一个基础实现,可以将它同Executors使用处理异步任务。通常不需要使用FutureTask类,单当打算重写Future接口的一些方法并保持原来基础的实现是,它就变得非常有用。

Future指的是未来。
Future Task指的是未来的任务。

详细解释:
future 英[ˈfju:tʃə(r)] 美[ˈfjutʃɚ]
adj. 将来的,未来的; [语法学] 将来时的;
n. 前途; 期货; [美国俚语] 未婚妻;
[例句]The spokesman said no decision on the proposal was likely in the immediate future.
发言人说近期不会就这项提案作出决议。

task 英[tɑ:sk] 美[tæsk]
n. 作业; 工作,任务; 苦差事;
vt. 交给某人(任务); 使过于劳累;
[例句]Walker had the unenviable task of breaking the bad news to Hill.
沃克不得不把这个坏消息告诉希尔。


多线程 - FutureTask 执行流程
同样的 ,F uture 接口中的所有实现均在 FutureTask 中可以找到。总结一下,FutureTask 实现了 Runnable 接口的 run() 方法(该方法在 Thread.start() 后被调用),实现了 Future 的 get()、cancel()、isCancelled() 和 isDone() 方法。但是,get() 方法是从何处获取到线程的结果呢?这次来看一...

小学生多音字集锦
1.喝:武松大喝(hè)一声:“快拿酒来!我要喝(hē)十二碗。”博得众食客一阵喝(hè)彩。2.折:这两批货物都打折(zhé)出售,严重折(shé)本,他再也经不起这样的折(zhē)腾了。3.单:单(Shàn)老师说,单(chán)于只会骑马,不会骑单(dān)车。4.着:你这着(zhāo)真绝,让他...

yahoo!中文翻译
En mars 2005, Ludicorp a été racheté par Yahoo! .Del.icio.us fut racheté le 9 décembre 2005 par Yahoo! .Turin 2006 Winter Olympics - Cross Country Results, Yahoo! .Suite à cette acquisition, AltaVista utipse désormais l'index de Yahoo! .Un groupe Yahoo! fut ...

急需一份凡尔赛宫的法文介绍
Louis XV et Louis XVI. Résidence royale, ce monument compte parmi les plus remarquables de France tant par sa beauté que par les événements dont il fut le théâtre. Le roi et la cour y résident de façon

背影 朱自清 法语版
很小的时候,还有人记得读朱自清的“后退”,也许是因为年龄尚小,不能真正理解父亲离开朱自清,只是觉得有点酸酸的,涩涩的,长大了,有一件事让我明白了清不朽的说不清的感觉,那是我母亲的...教室的窗户已被渡上了一层雪白色的“傻男孩的手在上面画一些,仅此一点就能够猜测的温度外,我摇摇头...

莫泊桑的《项链》德文版
Elle fut simple, ne pouvant être parée, mais malheureuse comme une déclassée; car les femmes n'ont point de caste ni de race, leur beauté, leur grâce et leur charme leur servant de naissance et de famille. Leur finesse native, leur instinct d'élégance, leur souplesse d'esprit so...

法语文章
Elle fut simple, ne pouvant être parée ; mais malheureuse comme une déclassée ; car les femmes n'ont point de caste ni de race, leur beauté, leur grâce et leur charme leur servant de naissance et de famille. Leur finesse native, leur instinct d'élégance, leur ...

学生会检讨书范文500字
诶……学社会是最不好犯事的地方了 学生会里的学生要求肯定要比别的同学要高……检讨书的内容嘛……主要是要围绕 你是一名学生干部 缺乏时间观念 无视了学生会的纪律 没有在同学们的面前做出表率的作用 并且表示以后不再犯 希望得到老师和同学的原谅 多写一点500字不就到了 ...

arrière-pays中文翻译
Ce fut une source majeure de production de sel marin ayant de plus un accès à un vaste arrière-pays .Des supports spéciaux pour l'entreposage de la nourriture ont également été aménagés sur tous les sites de camping en arrière-pays .En plus de ses fonctions ...

cabine中文翻译
• Fermeture à clef de la cabine de pilotage.
Puis-je transporter des outils dans mes bagages de cabine ?Cabine MASER située à l'extrémité de l'antenne..Melanie trouve refuge dans une cabine téléphonique.Le Lancia Esatau B qui disposait d'une ...

溆浦县15324567532: futuretask和future的区别 -
秘曹脑心: future task: 名词性短语,未来的任务(工作). future: 形容词,未来的.

溆浦县15324567532: 如何在java中获取线程异步执行之后的结果 -
秘曹脑心: java中提供了Future<V>接口和实现了Future接口的FutureTask<V> 类来将线程执行之后的结果返回(通过get()方法).1.Future<V>接口 Runnable接口执行任务是不返回任何值的,Runnable的run()方法的执行结果是void,而Future接口的...

溆浦县15324567532: java中文futuretask什么区别 -
秘曹脑心: FutureTask是Future的一个基础实现,可以将它同Executors使用处理异步任务.通常不需要使用FutureTask类,单当打算重写Future接口的一些方法并保持原来基础的实现是,它就变得非常有用.

溆浦县15324567532: java 子线程 回调 主线程 -
秘曹脑心: 如果主线程要等子线程完成才能继续执行又何必新开线程如果你非要这么干,java.util.concurrent.Future接口满足你的需求,具体用法百度 Future 接口 Future 接口允许表示已经完成的任务、正在执行过程中的任务或者尚未开始执行的任务.通过 ...

溆浦县15324567532: 如何获取正在执行的线程对象 -
秘曹脑心: java中线程池的监控可以检测到正在执行的线程数.通过线程池提供的参数进行监控.线程池里有一些属性在监控线程池的时候可以使用 taskCount:线程池需要执行的任务数量.completedTaskCount:线程池在运行过程中已完成的任务数量....

溆浦县15324567532: 谁知道类FutureTask的用法? -
秘曹脑心: 此类可取消的异步计算.利用开始和取消计算的方法、查询计算是否完成的方法和检索计算结果的方法,此类提供了对 Future 的基本实现.仅在计算完成时才能检索结果;如果计算尚未完成,则阻塞 get 方法.一旦计算完成,就不能再重新开始或取消计算.可使用 FutureTask 包装 Callable 或 Runnable 对象.因为 FutureTask 实现了 Runnable,所以可将 FutureTask 提交给 Executor 执行.除了作为一个独立的类外,此类还提供了 protected 功能,这在创建自定义任务类时可能很有用.

溆浦县15324567532: 创建多线程有几种方法 -
秘曹脑心: 1、通过继承Thread类创建线程 (1).首先定义一个类去继承Thread父类,重写父类中的run()方法.在run()方法中加入具体的任务代码或处理逻辑. (2).直接创建一个ThreadTest类的对象,也可以利用多态性,变量声明为父类的类型. (3)....

溆浦县15324567532: 线程runnable和callable的区别 -
秘曹脑心: Runnable和Callable的区别是,(1)Callable规定的方法是call(),Runnable规定的方法是run().(2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得(3)call方法可以抛出异常,run方法不可以(4)运行Callable任务可以拿到...

溆浦县15324567532: Java主线程、非主线程的问题 -
秘曹脑心: 1,当你运行这个类的时候,首先是java虚拟机自动创建一个线程,假设为T1,这个线程会调用main方法,main方法是java虚拟机自动调用的,调用的这个线程,即通常我们 说的主线程2,ThreadDemo 是你自定义的一个线程,当T1线程调用t...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网