scala list.par внутри актера - PullRequest
       16

scala list.par внутри актера

0 голосов
/ 27 сентября 2018

Я пытался использовать list.par для достижения параллелизма, чтобы что-то делать внутри актера.Примерно так:

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

Я думаю, что это заставило актеров MyActor заблокировать себя, так как я породил новые потоки с этим вызовом list.par.map.Я рассчитываю создать других дочерних акторов для этой параллельной работы вместо list.par - правильный путь.Или я что-то здесь упускаю?

1 Ответ

0 голосов
/ 28 сентября 2018

С документация :

Каждый субъект настроен для запуска на MessageDispatcher, и этот диспетчер дублируется как ExecutionContext.Если природа вызовов Future, вызванных субъектом, совпадает или совместима с действиями этого субъекта (например, все привязаны к процессору и не имеют требований к задержке), то может быть проще всего повторно использовать диспетчер для запуска Futures путем импорта context.dispatcher.

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