在Scala单例中使用 Object 类创建,当serval Akka actor调用特别是 Object 的方法时,是否会出现竞争条件?
答案 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)}