【发布时间】:2014-08-08 08:18:16
【问题描述】:
假设我们有一个 Akka actor,它以 var 的形式维护一个内部状态。
class FooActor extends Actor {
private var state: Int = 0
def receive = { ... }
}
假设接收处理程序调用一个返回未来的操作,我们使用调度程序将其映射为上下文执行程序,最后我们设置一个 onSuccess 回调来改变参与者状态。
import context.dispatcher
def receive = {
case "Hello" => requestSomething() // asume Future[String]
.map(_.size)
.onSuccess { case i => state = i }
}
从onSuccess 回调改变actor的状态是否是线程安全的,即使使用actor调度器作为执行上下文?
【问题讨论】:
标签: scala concurrency akka future