演员模型中演员的生命周期

时间:2012-10-15 02:39:21

标签: scala akka actor

我是演员模特的新手。任何人都可以在演员模型中解释一个演员的生命周期吗?我一直在寻找文档中的答案,但我找不到任何令人满意的结果。

我对演员在完成onReceive()方法后所做的事情感兴趣 - 它还活着还是死了?我们可以控制它的生命周期来说“不要死,等待下一条消息”吗?例如,使用循环路由器,如果我将其设置为有5个演员 - 它是否总是将作品分配到相同的 5个演员?或者演员在有消息时被销毁并创建,但最大限制始终为5。

谢谢!

1 个答案:

答案 0 :(得分:8)

Actor总是活着的,除非你明确地“杀死”它(或者它以某种方式崩溃)。当它收到消息时,它将“使用”一个线程,处理该消息,然后返回“空闲”状态。当它收到另一条消息时,它再次变为“活动”。

对于5 Actor s的循环路由器,它是相同的5 Actor s - 每次向路由器发送消息时路由器都不会创建新的路由器。

Actor模型遵循“孤立可变性”(并发)模型 - 它仅将状态封装到自身 - 其他Actor无法直接触及此状态,它们只能通过消息传递与之交互。 Actor必须是“活着的”才能保持状态。