12

Hoare 1978 年的一篇论文中,我们提出了一个名为 Communicating Sequential Processes 的想法GoOccam和 Clojure 中的core.async都使用了它。

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

编辑 - 我还看到通信 Scala 对象作为 Scala 中 JCSP 的替代方案。但是这些似乎与真正的线程相关联 - 这似乎错过了 CSP 的好处之一,即摆脱保持大量线程始终处于活动状态的内存资源成本。

4

1 回答 1

2

您应该查阅此文档,但总的来说有一些区别:

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

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

于 2013-12-06T11:19:51.567 回答