首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Akka的Actor与Scala的Actor模型有什么不同

Akka的Actor与Scala的Actor模型有什么不同
EN

Stack Overflow用户
提问于 2012-02-20 17:00:10
回答 2查看 15.1K关注 0票数 77

我发现还有一个Akka的actor模型,所以我想知道Akka的Actor和Scala的Actor模型有什么区别?

EN

回答 2

Stack Overflow用户

发布于 2012-09-07 14:19:24

也有一个历史的答案。Scala的创建者认为应该有一个参与者框架。Jonas Bonér尝试了一下,但并不完全满意,所以他开始研究一种新的--它演变成了Akka。然而,Scala的人认为它比他们自己的更好-所以在Jfokus 2011上,他们宣布Akka将成为Scala的标准参与者框架。但是,迁移需要一些时间。

票数 32
EN

Stack Overflow用户

发布于 2012-09-07 14:14:36

这有点取决于你对“模型”的理解--你既可以指“执行模型”,也可以指“编程模型”(也许还有其他模型)。

对于执行模型,基本上有两种:基于线程或基于事件。Scala标准执行元库同时包含了这两个库。基于线程的为每个参与者使用一个线程,而基于事件的使用一个线程池。前者更直观,后者更高效。Akka建立在基于事件的模型之上。

在编程模型上,scala标准库和Akka有很大的不同。在scala标准库中,您基本上实现了"run“方法--如果您想要等待传入的消息,您会让自己进入等待状态(通过调用"receive”或"react")。因此,编程模型遵循“线程隐喻”。然而,在Akka中,编程的比喻是实现一些生命周期方法--但是“运行”-method是在框架内部编写的。事实证明,这种编程模型在基于事件的执行模型中也能更好地工作。

如果你对scala标准参与者的不同执行模型和编程模型感兴趣,我已经在这个问题上写了a few posts

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9358408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档