gpt4 book ai didi

scala - Akka和Async有何不同

转载 作者:行者123 更新时间:2023-12-04 04:53:27 25 4
gpt4 key购买 nike

我参加了一个关于Scala的新库Async(https://github.com/scala/async)的非常有趣的演讲,我不确定Akka和Async有何不同。

我是Scala的新手,所以如果答案很明显,我深表歉意。

谢谢。

最佳答案

异步简化了异步和并发编程。异步使您能够以熟悉的直接样式使用非阻塞API进行编程。直接样式代码与阻塞代码一样容易编写,但是它具有高效的非阻塞代码的所有优点。

开箱即用,Async使使用Scala's futures的编程更加方便。实际上,通过将 future 与Async结合使用,您易于阅读的直接样式代码可以在后台转换为高效的非阻塞代码。异步也可以连接到其他API(请参见下文)。

Akka提供了一个编程模型和运行时来简化并发,分发和容错能力。异步不提供运行时,而是使现有抽象及其运行时更易于使用。但是,Async和Akka可以通过几种重要方式一起工作:

  • 使用Akka的“询问”模式,使用“?”发送消息返回 future 。异步使使用这些 future 变得容易。
  • 异步可以连接到Scala's Futures API以外的其他API。这开辟了有趣的方式来利用Async简化与Akka actor的编程。这是我们不久将在Typesafe上探索的一个领域。
  • Async是Akka's dataflow API的替代品,后者更简单,更强大。异步更为简单,因为它不会引入因使用Scala的CPS插件而产生的复杂类型。异步功能更强大,因为它可以与CPS/Akka的数据流API未完全支持的模式匹配和try-catch等功能很好地结合使用。而且,明确规定了不能使用Async的地方(在闭包,嵌套类/特征/对象或按名称命名的参数内不能出现await)。

  • 有关更多异步示例和文档,请参阅我最近的 talk on AsyncAsync project website上的文档。

    关于scala - Akka和Async有何不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16959266/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com