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

在多线程上 , 如果不要求取线程的返回值 , 或者不捕获异常 , 大家基本都是用or , 面试的时候被问到 , 此时此刻是什么?这是什么 。
看过我上一篇文章的小伙伴应该知道 , 《初试:如何向线程池提交任务 , 提交任务的几种方法有什么区别?》如果您还没有阅读它 , 请不要惊慌 。在本文中 , 我将告诉您它们是什么以及它们的用途 。
大家都知道在线程池中提交任务有两种方式 , 分别是实现类和实现类 。从run方法中也可以知道它没有返回值或者抛出异常 , 这决定了它是否是一个有返回值的并且抛出异常是无法实现的 。如果我们需要获取返回值 , 我们就不得不想其他各种方法来解决它 。从jdk1.5 开始 , 提供了 , 它们为我们提供了线程返回值和异常的功能 。如图:

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

文章插图
调用方法抛出异常并有返回值 。(所以和他比起来 , 优势就出来了) , 再对比下线程是怎么实现的 。
future是什么意思,基本上使用的都是Thread或者Runnable

文章插图

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

文章插图
实施
future是什么意思,基本上使用的都是Thread或者Runnable

文章插图
实施
不用说 , 你必须使用封装来启动一个线程 。看过我上一篇文章的人肯定会说 , 我没有在线程池中使用 , 而是直接提交了 。因为里面也是用的 , 是他给我们写的 。如图:
future是什么意思,基本上使用的都是Thread或者Runnable

文章插图
眼尖的人一定见过这种方法 。我之前说过 , 这个方法只能被实现它的类使用 , 这就证明它肯定实现了 。如图:
那么他除了打包还能做什么呢?
future是什么意思,基本上使用的都是Thread或者Runnable

文章插图
方法
最后从上面的源码可以看出已经实现了 , 上面的方法都是精确定义的 。就是取消某个特定或任务的执行结果 , 检查查询是否完成 , 获取结果 。也就是说 , 提供了三个函数:1)判断任务是否完成; 2) 中断任务; 3) 获取任务执行结果 。相反 , 对象可以包装实现的对象 , 并且由于它也实现了接口 , 因此可以提交执行 。
【future是什么意思,基本上使用的都是Thread或者Runnable】郑重声明:本文版权归原作者所有 , 转载文章仅出于传播更多信息之目的 。如果作者信息标注有误 , 请尽快联系我们修改或删除 , 谢谢 。