我正试图找到'正确'的演员实现。我意识到有一堆它们,选择一个有点令人困惑。就个人而言,我对远程演员特别感兴趣,但我想完整的概述会对很多人有所帮助。这是一个相当普遍的问题,所以请随意回答您所了解的实施。
我知道以下Scala Actor实现(SAI)。请添加遗漏的。
Scalaz(http://code.google.com/p/scalaz/)
这些SAI的目标用例是什么(轻量级与“重型”企业框架)?
答案 0 :(得分:18)
这是迄今为止我见过的最全面的比较:
http://doc.akka.io/docs/misc/Comparison_between_4_actor_frameworks.pdf通过http://klangism.tumblr.com/post/2497057136/all-actors-in-scala-compared
答案 1 :(得分:9)
自Scala 2.10起,scala actors现已弃用,Akka Actors现已成为标准发行版的一部分
答案 2 :(得分:8)
Scala 2.7.7。 The Scala 2.8.0 RC3 distribution之后的vs 2.8:
New Reactors提供更轻量级,纯粹基于事件的actor,带有可选的隐式发件人标识。添加了对具有守护程序样式语义的actor的支持。可以将Actor配置为使用高效的JSR166y fork / join池,从而显着提升1.6 JVM的性能。调度程序现在可以插入,更容易定制。
还有一个Haller的设计文档:Scala Actors: Unifying Thread-based and Event-based Programming
答案 3 :(得分:6)
据我所知,只有Scala和Akka支持远程演员。
Akka由scalablesolutions支持,它为akka提供商业支持和插件。 Akka似乎是一个重量级的解决方案,它的目标是与现有框架(驼峰,AMQP,JTA,Comet,Spring,Redis)以及STM和持久性集成。
与Scala相比,Akka不支持嵌套接收,但支持热插拔actor消息循环,并且同时具有基于线程和基于事件的actor以及所谓的“基于事件的单线程”。
答案 4 :(得分:3)
我意识到akka强制执行详尽的比赛。因此,即使技术上接收期望部分功能,该功能也不能是部分功能。这意味着您必须立即处理每条消息。