在我的Scala应用程序中,我需要使用几个经常更新的地图和列表。 Scala中是否存在维护插入顺序的任何线程安全集合?
答案 0 :(得分:5)
是的,scala.collection.concurrent
包中有一个特性:concurrent.Map它只是一个特征,所以只需将这个特性混合到你的地图中它就会变得是线程安全的。
如果您需要良好的并发地图,请尝试使用Google ConcurrentLinkedHashMap并使用Scala/Java converter将其转换为Scala地图,这样可以提高mixin SynchronizedMap
的性能。例如,我最喜欢的Spray工具包,use它作为一个核心结构,用于实现它的缓存模块。正如您所能see,spray是最快的Scala Web工具包