演员实例的数量

时间:2015-04-22 06:37:11

标签: scala akka actor

我是akka-actor的新手并且遇到了一些问题:

  1. 当我创建一个actorSystem,并使用actorOf(Props(classOf [AX],...))在main方法中创建actor时,我的actor AX有多少个实例?
  2. 如果Q1的答案只有一个,这是否意味着我在AX actor类的定义中创建的数据结构只出现在一个线程中,我不应该关注并发性问题?
  3. 如果我的演员之一(接收方法中的一个案例)是一项耗时的任务并且需要很长时间才能完成,该怎么办?我的单个Actor实例在完成该任务之前是否会响应?
  4. 如果对Q3的回答是正确的,那么我应该做些什么来阻止我的演员不回应?我应该启动另一个线程并发送另一条消息直到完成任务吗?我应该遵循最佳做法吗?

1 个答案:

答案 0 :(得分:1)

  1. 一个实例(如果你在道具中声明一个路由器,那么(可能)不止一个)
  2. 是。这是演员的优势之一。
  3. 是。 Actor将按顺序处理消息。
  4. 您可以使用scala.concurrent.Future(以后不要使用actor状态)或将工作委托给子actor(主actor可以管理状态并可以响应消息)。未来或儿童演员取决于用例。