这个调度程序使用了多少个线程?

时间:2017-03-21 10:24:43

标签: scala akka

我有一个假人application.conf如下:

configuration {

  default-dispatcher {
    type = Dispatcher
    executor = "thread-pool-executor"
    thread-pool-executor {
      core-pool-size-min = 4
      core-pool-size-factor = 2.0
      core-pool-size-max = 8
    }
    throughput = 10
    mailbox-capacity = -1
    mailbox-type = ""
  }

}

因此,池中总共有4 x 2 = 8个线程,并且最多8 x 2 = 16个线程。

现在,如果我理解正确,调度员负责从邮箱中挑选一个演员和一堆邮件并进行处理。

接下来,我为主管生成一个儿童演员,如下所示:

val greeter: ActorRef = context.actorOf(GreetingsActor.propsWithDispatcher) 

我想知道的是......因为只有一个子actor的实例,所以只有一个来自池的线程会被使用。

我的理解是否正确?

1 个答案:

答案 0 :(得分:0)

是的,单个actor可以在一个线程上一次处理1条消息。处理消息时,线程将返回到线程池,因此可用于调度其他消息和参与者。