阿卡演员的简单解释

时间:2013-02-07 18:11:39

标签: scala akka actor

以下陈述是否正确,否则如何改进?

  

当向Akka演员发送消息时,作业将提交给执行者。   当有一个空闲线程时,它会调用获得锁定的作业   演员(假设它可以,否则另一个工作)。该   然后调用actor的receive方法,一旦完成,   作业被丢弃,线程返回池中。然后重复该循环。   所有与并发线程相关的复杂内容都是   由Akka处理,让程序员专注于   解决业务问题。

1 个答案:

答案 0 :(得分:8)

更准确的是:

  

当消息发送给actor时,它将被放置在此actor的名为 mailbox 的队列中。同时,可能有数百或数千个演员在其邮箱中有待处理的消息。 Akka使用有限数量的工作线程,选择此类actor的子集,并按时间顺序对邮箱中的每条消息调用receive方法。

     

多个线程永远不会处理同一个actor。此外,Akka可能决定中断来自邮箱的消息处理,并选择不同的演员以保持公平并避免饥饿。因为每个receive调用都需要一个线程,所以此方法永远不应该阻塞,等待或休眠。