5

我是演员模型的新手。谁能解释演员模型中演员的生命周期?我一直在文档中寻找答案,但找不到任何令人满意的东西。

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

谢谢!

4

1 回答 1

8

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

在具有 5 s 的循环路由器的情况下Actor,它是相同的 5 Actors - 路由器不会在每次向路由器发送消息时创建新的。

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

于 2012-10-15T02:41:43.357 回答