gpt4 book ai didi

Clojure 相当于 "Actors"

转载 作者:行者123 更新时间:2023-12-05 00:46:49 28 4
gpt4 key购买 nike

我最近一直在研究 Elixir 和 Akka,这让我想到:Clojure 中的等价物是什么?

  • 我发现了几篇关于代理与 Actor 的“消息吞吐量比较”帖子,但它们来自 8 年前
  • 一个答案曾经agents ...但这不是完全相同的东西(agents似乎没有他们的< em>自己的逻辑,它们被外部代码“执行”)
  • 另一个较新的答案是 Pulsar fibers(更接近,但......仍然保持不变吗?)

(我知道我可能“在这里问错了问题”,希望这不会太开放)

最佳答案

Rich Hickey 在他 2008 年的演讲“Clojure Concurrency”中明确区分了代理和 Actor ,并提到了它们彼此不同的几种方式。如果您想快速找到其中一些评论,请在本次演讲的记录中搜索“代理人”和“ Actor ”:https://github.com/matthiasn/talk-transcripts/blob/master/Hickey_Rich/ClojureConcurrency.md

在 clojure.org 上了解代理和 Actor 之间的区别的更多信息:https://clojure.org/about/state#actors

另一个比我更了解原始 Hewitt Actor 模型的人的谈话,显然,这可能对阅读有用:http://www.dalnefre.com/wp/2010/06/actors-in-clojure-why-not/

我的理解是,如果你想要 Erlang 风格的 Actor ,你基本上需要线程/进程之间不可靠的消息队列。在不同的进程之间,有多种方法可以实现不可靠的消息传递,没有一种方法内置于 Clojure,但都可以通过 Java 互操作获得。

关于Clojure 相当于 "Actors",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59464507/

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