Akka如何决定哪个Actor获得线程?

时间:2013-12-19 11:19:15

标签: akka actor

假设我们在只有一个Actor的调度程序上运行了三个Akka ABCThread,并发生以下情况:< / p>

  1. A收到一条消息并开始处理
  2. 同时向B发送一条消息,同时向C发送一条消息。由于没有Thread可用,BC都将这些邮件放入邮箱中
  3. A现在已完成处理邮件,邮箱中没有邮件,因此将Thread释放回池中
  4. BC现在都需要此Thread。是否有任何保证将首先放在线程上?
  5.   
        
    • Akka如何做出这个决定?它是否在Actor
    • 中的所有ActorSystem上循环播放   
    • 此决定是否可配置?   
          
      • 在这些情况下,我可以说Actor C的优先顺序是在Actor B之前获取主题吗?
      •   
    •   

1 个答案:

答案 0 :(得分:1)

使用Akka的全部原因是不必处理这类事情。您不希望(或需要)以这样的方式确定角色的优先级。内部调度程序逻辑非常复杂,并且非常优化,可以尽快处理任务。应通过其他方式(如路由器或优先邮箱)来确定优先级。

现在回答你的问题:默认调度程序由阻塞队列支持 - 将首先选择首先在其邮箱中收到邮件的角色。