我尝试使用list.par来实现并行性以在actor中执行某些操作。像下面这样
MyActor {
myList.par.map {
listItem => doSomething(listItem)
}
}
我认为这已导致MyActor演员锁定自己,因为我使用该list.par.map调用生成了新线程。我认为为该并行性工作创建其他子角色,而不是为list.par创建正确的方法。还是我在这里想念东西?
答案 0 :(得分:0)
每个actor被配置为在MessageDispatcher上运行,并且 调度程序还可以兼作ExecutionContext。如果未来的本质 参与者调用的呼叫与 该参与者的活动(例如,所有CPU受限制且没有延迟 要求),那么可能最容易将调度程序重新用于 通过导入context.dispatcher运行期货。
class A extends Actor {
import context.dispatcher
val f = Future("hello")
def receive = {
case _ ⇒
}
}