首页 >> 大全

future是什么意思,基本上使用的都是Thread或者Runnable

2022-08-17 大全 166 作者:考证青年

在多线程上,如果不要求取线程的返回值,或者不捕获异常,大家基本都是用or,面试的时候被问到,此时此刻是什么?这是什么。

看过我上一篇文章的小伙伴应该知道,《初试:如何向线程池提交任务,提交任务的几种方法有什么区别?》如果您还没有阅读它,请不要惊慌。在本文中,我将告诉您它们是什么以及它们的用途。

大家都知道在线程池中提交任务有两种方式,分别是实现类和实现类。从run方法中也可以知道它没有返回值或者抛出异常,这决定了它是否是一个有返回值的并且抛出异常是无法实现的。如果我们需要获取返回值,我们就不得不想其他各种方法来解决它。从jdk1.5 开始,提供了,它们为我们提供了线程返回值和异常的功能。如图:

初级面试:解释什么是Future, FutureTask

调用方法抛出异常并有返回值。 (所以和他比起来,优势就出来了),再对比下线程是怎么实现的。

初级面试:解释什么是Future, FutureTask

实施

初级面试:解释什么是Future, FutureTask

实施

不用说,你必须使用封装来启动一个线程。看过我上一篇文章的人肯定会说,我没有在线程池中使用,而是直接提交了。因为里面也是用的,是他给我们写的。如图:

初级面试:解释什么是Future, FutureTask

眼尖的人一定见过这种方法。我之前说过,这个方法只能被实现它的类使用,这就证明它肯定实现了。如图:

那么他除了打包还能做什么呢?

初级面试:解释什么是Future, FutureTask

方法

最后从上面的源码可以看出已经实现了,上面的方法都是精确定义的。就是取消某个特定或任务的执行结果,检查查询是否完成,获取结果。也就是说,提供了三个函数:1)判断任务是否完成; 2) 中断任务; 3) 获取任务执行结果。相反,对象可以包装实现的对象,并且由于它也实现了接口,因此可以提交执行。

郑重声明:本文版权归原作者所有,转载文章仅出于传播更多信息之目的。如果作者信息标注有误,请尽快联系我们修改或删除,谢谢。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了