加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala Futures和java 8 CompletableFuture

发布时间:2020-12-16 09:11:07 所属栏目:安全 来源:网络整理
导读:在 Java 8中引入了CompletableFutures带来了scala.concurrent.Future中可用的语言特性,如单一转换. 有什么区别,为什么Scala开发人员应该喜欢Scala Futures超过java 8 CompletableFuture? 通过akka.dispatch桥梁使用scala.concurrent.Futurein Java还有很好
在 Java 8中引入了CompletableFutures带来了scala.concurrent.Future中可用的语言特性,如单一转换.

>有什么区别,为什么Scala开发人员应该喜欢Scala Futures超过java 8 CompletableFuture?
>通过akka.dispatch桥梁使用scala.concurrent.Futurein Java还有很好的理由吗?

解决方法

What are the differences,and why a Scala developer should prefer Scala Futures over java 8 CompletableFuture ?

改写@ dk14在评论中指出,我会说,CompletableFuture没有惯用的Scala api.

对于scala开发人员的影响是:

由于事实不符合单一类型常用的Scala方法惯例,因此缺乏理解
>在使用大部分方法时需要java-scala interop开销

还有值得注意的是,Java CompletableFuture并不完全等同于Scala Future.这是一场史无前兆和承诺的融合.

考虑到上面列出的缺点,在Scala中使用CompletableFuture没有什么意义,除非您正在设计应该与java无缝互操作的公共api.

Are there still good reasons to use the scala.concurrent.Future in Java through akka.dispatch bridge?

I am particularly looking for reasons to use akka.dispatch in Java,if there are still any

Akka建立在scala之上,有时候会使用scala Futures.这意味着,如果你有一部分代码用java编写,那么值得将其包装在scala api(使用akka.dispatch java api)中,以便能够轻松地使用它与akka.

例如,您正在java中实现akka actor.当处理消息时,你想做一些非阻塞的阅读,当完成后,应该产生结果作为一个消息给另一个actor.

您可以做的是将您的I / O放入java Callable,然后使用akka.dispatch.Futures#future获取scala的未来,然后您可以利用akka pipe将未来的结果作为一个消息传递给一些演员.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读