我已经在Erlang演员模型,Groovy演员,Scala演员模型等上下文中的几个地方提到过它。这是指什么?
答案 0 :(得分:3)
我认为Wikipedia总结得最好:
演员模型采用的理念是一切都是演员。这类似于一切是一些面向对象编程语言所使用的对象哲学,但不同之处在于面向对象的软件通常是顺序执行的,而Actor模型本质上是并发的。 [snip] Actor模型是关于消息传递的语义。
答案 1 :(得分:1)
前段时间我编写了this blog post来解释模型的基本概念,并使用JavaScript构建基本实现。从帖子:
在Actor模型中,actor是构建应用程序结构的基础,它具有对外部世界不可见的内部状态,并通过异步消息与其他actor交互。
如果这听起来很像面向对象编程(OOP),那你就是对的。可以将Actor模型视为OOP,对消息进行特殊处理:它们是异步传递的,并由接收者同步执行。
每个actor都标有一个唯一的地址,您可以通过该地址向其发送消息。处理消息时,它将与actor的当前行为进行匹配;这只不过是一个函数,它定义了对消息作出反应的动作。在回复消息时,演员可以:
- 创造更多演员。
- 向其他演员发送消息。
- 指定内部状态以处理下一条消息。
答案 2 :(得分:0)