Akka中的Futures和Agents相比Clojure的对应物有什么优势?

3
1个回答

3
"

在Akka中,代理人(Agents)的灵感来自Clojure语言中的代理人。这是关于代理人部分的问题的第一行文档。至于Future方面,它们在概念上是相同的(即在单独的线程上调用操作)。底层实现基于java.util.concurrent,因此两者使用相同的基础架构。

Scala部分:重要的是如何将“可组合”这个词应用于代理人和Future(对于两者都是如此)。如果您阅读akka文档,您将发现可以在Akka futures上使用高阶函数,例如map, filter等。即,对未来的映射操作返回另一个未来(类似地对于filter)。这使您可以轻松地组合/链接未来并等待最终未来的最终值。现在,所有这些都是可能的,因为mapfilterfor等推导都基于Scala(单子)API,该API基本上允许任何新类型提供这些函数的特定实现。

Clojure部分:在Clojure方面,您知道map, filter等仅仅是可以遍历集合的常规函数,因此它们与scala的单子API不同。因此,在Clojure中,您将使用不同的方式来组合Future,毕竟Clojure(或Lisp一般)允许以许多方式进行组合。

"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接