future是什么意思,基本上使用的都是Thread或者Runnable
在多线程上,如果不要求取线程的返回值,或者不捕获异常,大家基本都是用or,面试的时候被问到,此时此刻是什么?这是什么。
看过我上一篇文章的小伙伴应该知道,《初试:如何向线程池提交任务,提交任务的几种方法有什么区别?》如果您还没有阅读它,请不要惊慌。在本文中,我将告诉您它们是什么以及它们的用途。
大家都知道在线程池中提交任务有两种方式,分别是实现类和实现类。从run方法中也可以知道它没有返回值或者抛出异常,这决定了它是否是一个有返回值的并且抛出异常是无法实现的。如果我们需要获取返回值,我们就不得不想其他各种方法来解决它。从jdk1.5 开始,提供了,它们为我们提供了线程返回值和异常的功能。如图:
调用方法抛出异常并有返回值。 (所以和他比起来,优势就出来了),再对比下线程是怎么实现的。
实施
实施
不用说,你必须使用封装来启动一个线程。看过我上一篇文章的人肯定会说,我没有在线程池中使用,而是直接提交了。因为里面也是用的,是他给我们写的。如图:
眼尖的人一定见过这种方法。我之前说过,这个方法只能被实现它的类使用,这就证明它肯定实现了。如图:
那么他除了打包还能做什么呢?
方法
最后从上面的源码可以看出已经实现了,上面的方法都是精确定义的。就是取消某个特定或任务的执行结果,检查查询是否完成,获取结果。也就是说,提供了三个函数:1)判断任务是否完成; 2) 中断任务; 3) 获取任务执行结果。相反,对象可以包装实现的对象,并且由于它也实现了接口,因此可以提交执行。
郑重声明:本文版权归原作者所有,转载文章仅出于传播更多信息之目的。如果作者信息标注有误,请尽快联系我们修改或删除,谢谢。