当我在Scala世界时,我使用actor来管理共享状态。
出于好奇,想要了解其他人如何在没有使用Actors的情况下处理Scala 中的线程安全要求。
我理解答案可能会根据州/州的要求是多么小,但如果你有简单的状态。例如以下是一个非常简化的例子
class MyEntityObj{
private var keys = mutable.Set[Int]()
def insertKey(key:Int) ={
keys = keys + key
}
def persistKeys(keys:Set[Int) ={
persistanceService.persist(keys)
}
}
在某些情况下,Java concurrent collections可能会派上用场,但每次都可能不合适。我再次知道Actors是一种方式(我已经使用了Actors)但是如果不是演员那么你通常会选择其他方法吗?