当多个Actors在Scala中访问/调用Object类方法时是否存在竞争条件?

时间:2015-11-12 13:08:59

标签: scala akka

在Scala单例中使用 Object 类创建,当serval Akka actor调用特别是 Object 的方法时,是否会出现竞争条件?

2 个答案:

答案 0 :(得分:5)

如果对象保持状态,则为是。它需要适当的同步保护

答案 1 :(得分:1)

同意S V的回答。一个方便的"守卫"对于值,使用Agent。读取是立即的,写入是异步的:

import scala.concurrent.ExecutionContext.Implicits.global
import akka.agent.Agent

val agent = Agent(5)

Future {agent send 12}
Future { agent send (_ + 4)}
Future { agent send (_ * 2)}
相关问题