未来怎么在Java与Scala中使用

  

未来怎么在Java与Scala中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强>未来

很多同学可能会有疑问,前途跟异步编程有什么关系?从未来的表面意思是未来,一个未来的对象可以看出一个将来得到的结果,这就和异步执行的概念很像,你只管自己去执行,只要将最终的结果传达给我就行,线程不必一直暂停等待结果,可以在具体异步任务执行的时候去执行其他操作,举个例子:

拔蠢丛趺丛贘ava与Scala中使用“

异步工作我们现在在执行做饭这么一个任务,它需要煮的饭,烧菜,摆置餐具等操作,如果我们通过异步这种概念去执行这个任务,比如煮饭可能需要比较久的时间,但煮饭这个过程又不需要我们管理,我们可以利用这段时间去烧菜,烧菜过程中也可能有空闲时间,我们可以去摆置餐具,当电饭锅通知我们饭烧好了,菜也烧好了,最后我们就可以开始吃饭了,所以说,上面的“煮饭→饭”、“烧菜→菜”都可以看成一个未来的过程。

<强> Java中未来的

在Java的早期版本中,我们不能得到线程的执行结果,不管是继承线程类还是实现运行的接口,都无法获取线程的执行结果,所以我们只能在线程执行的运行方法里去做相应的一些业务逻辑操作,但随着Java5的发布,它为了我们带来了可赎回和未来的接口,我们可以利用这两个接口的特性来获取线程的执行结果。

<强>可调用的接口

通俗的讲,可调用的接口也是一个线程执行类接口,那么它跟Runnable接口有什么区别呢?我们先来看看它们两个的定义:

<强> 1。可调用的接口:

@FunctionalInterface   public  interface  Callable

<强> 2。可接口:

@FunctionalInterface   public  interface  Runnable  {   ,public  abstract  void 运行();   }

从上面的定义,我们可以看的出,两者最大的区别就是对应的执行方法是否有返回值.Callable接口中调用方法具有返回值,这便是为什么我们可以通过可调用的接口来得到一个线程执行的返回值或者是异常信息。

<强>未来接口

上面说到既然可调用的接口能返回线程执行的结果,那么为什么还需将来要接口呢?因为可调用的接口执行的结果只是一个将来的结果值,我们若是需要得到具体的结果就必须利用未来的接口,另外可调用的接口需要委托ExecutorService的提交提交任务去执行,我们来看看它是如何定义的:

& lt; T>, Future,提交(Callable,任务);   ,public  & lt; T> Future,提交(Callable

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

未来怎么在Java与Scala中使用