通信顺序进程[CSP]是Scala中actor模型的替代方案吗?

时间:2013-11-24 05:29:25

标签: scala core.async actor-model

1978 Paper by Hoare we have an idea called Communicating Sequential Processes中。这由GoOccamcore.async中的Clojure使用。

是否可以使用CSP替代Scala中的Actor模型?(我看到JCSP但是我想知道这是否是唯一的选择,如果它是成熟的,如果有人使用它)。

编辑 - 我也看到Communicating Scala Objects替代Scala中的JCSP。但是这些似乎与真正的线程相关 - 这似乎错过了CSP的一个好处,就是要远离保持大量线程始终处于活动状态的内存资源成本。

1 个答案:

答案 0 :(得分:2)

您应该咨询this document,但一般情况下会有一些差异:

  • 频道是匿名的,而演员有身份
  • 在CSP中,您使用频道传输消息,但演员可以直接相互联系。
  • 在CSP中,通信以集合的形式进行(即,它是同步的)。 Actors支持异步消息传递。

是的,如果你的职位可以接受这些差异,可以使用CSP作为Actor模型的替代。我对JCSP没有任何经验,但我不建议使用该特定库(原因是我看到自2011年以来项目中没有任何活动)。