gpt4 book ai didi

scala - Scala 并发模型上下文中的 Clojure future

转载 作者:可可西里 更新时间:2023-11-01 14:11:58 27 4
gpt4 key购买 nike

在接触了scala的Actors和Clojure的Futures之后,感觉这两种语言对多核数据处理的支持都非常好。

但是,我仍然无法确定这两种模型的并发特性和优缺点之间真正的工程差异。这些语言在处理并发过程抽象方面是互补的还是相反的?

其次,关于大数据问题,不清楚 scala 社区是否继续明确支持 Hadoop(而 clojure 社区显然支持)。 Scala 开发人员如何与 hadoop 生态系统交互?

最佳答案

有些解决方案可以由代理人/ Actor 很好地解决,有些则不能。这种区别实际上与语言无关,而更多地是关于特定问题如何适应一般类别的解决方案。这是 Actors/agents 与 References 的(非常简短的)比较,旨在阐明该工具必须解决并发问题这一点。

Actor 在不需要同时修改数据的分布式情况下表现出色。如果您的问题可以纯粹通过传递消息来表达,那么 Actor 就可以解决问题。 Actor 在需要同时修改多个相关数据结构的地方表现不佳。这方面的典型例子是在银行账户之间转移资金。

Clojure 的 ref 很好地解决了很多线程需要同时修改同一事物 的问题。他们擅长共享内存多处理器系统,例如今天的 PC 和服务器。除了银行账户的例子,Rich Hickey(clojure 的作者)还用棒球比赛的例子来解释为什么这很重要。如果你想用 Actor 来代表一场棒球比赛,那么在你移动球之前,所有的球迷都必须向它发送一条消息,询问它在哪里……如果他们想看一个球员 catch ,事情就会变得平坦更复杂。

Clojure 具有 cascalog,这使得编写 hadoop 作业看起来很像编写 clojure。

关于scala - Scala 并发模型上下文中的 Clojure future ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858122/

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