演员中的scala list.par

时间:2018-09-27 04:22:06

标签: scala parallel-processing akka

我尝试使用list.par来实现并行性以在actor中执行某些操作。像下面这样

MyActor {
     myList.par.map {
          listItem => doSomething(listItem)
     }
}

我认为这已导致MyActor演员锁定自己,因为我使用该list.par.map调用生成了新线程。我认为为该并行性工作创建其他子角色,而不是为list.par创建正确的方法。还是我在这里想念东西?

1 个答案:

答案 0 :(得分:0)

来自the documenation

  

每个actor被配置为在MessageDispatcher上运行,并且   调度程序还可以兼作ExecutionContext。如果未来的本质   参与者调用的呼叫与   该参与者的活动(例如,所有CPU受限制且没有延迟   要求),那么可能最容易将调度程序重新用于   通过导入context.dispatcher运行期货。

class A extends Actor {
  import context.dispatcher
  val f = Future("hello")
  def receive = {
    case _ ⇒
  }
}