我使用 Scala 已经有一段时间了,我已经开始更深入地研究并发性。凭借我对 Java 并发性的了解,我已经完成了我必须做的简单事情,但我正在尝试更深入地了解 Actors 世界。
问题是除了这个我找不到任何高级教程或文档:
http://docs.scala-lang.org/overviews/core/actors.html (相当不错顺便说一句)
当然我已经阅读了 API,但我想要一些代码示例、良好实践、建议等。
注意:我说的是关于主流文档中未涵盖的内容的文档。我知道 Actor 的核心概念。另外,我读过这些书:
Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition
Programming Scala: Scalability = Functional Programming + Objects
编辑:感谢您的所有回答。我知道关于 Actor 的书籍,但我正在寻找免费的书籍。
最佳答案
我的出发点是阅读一些 Erlang 教程,例如 Learn You Some Erlang for Great Good . Erlang 已经存在了一段时间,并且有很多教程、书籍和演示文稿。 Erlang 的核心是参与者模型,即在无共享参与者(在 Erlang 中称为进程)之间传递消息,因此这是理解概念的好方法。
然后当您转向 Scala 的语法时,请使用 Akka,因为它的 API 比基本的 Scala actors 更接近 Erlang。从根本上说,使用 Akka 的 Scala 中的 actors 非常简单。真正的挑战是采用一种设计并根据没有任何共享数据的参与者重铸它。 Scala 有一种诱惑,就是只使用一些 Java 库和一些面向对象的设计,并最终得到一些与 actor 不太兼容的东西。
我建议从参与者的角度出发,确定可行的设计,然后使用 Java 类和面向对象的技术对其进行增强。例如,在我的第一个基于 Akka 的应用程序中,我使用普通的 Java AMQP 库而不是 Akka 抽象来使用消息,因为 Java 类很简单而且我已经非常熟悉 AMQP。
关于Scala:您知道任何高级 Actors 文档/教程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9090523/