【发布时间】:2014-02-25 21:50:58
【问题描述】:
我正在寻找带有Long 键的快速Map 的建议。它将有很多读访问和相当小的写/更新访问。因此,性能应侧重于读取 (get) 访问。它必须是线程安全的。一些想法:
- 常规的
collection.Map[Long, _]必须框键 - 裸露的
collection.mutable必须一直包装synchronized,这会惩罚读取访问权限 - 如果存储在
@volatilevar中,裸骨collection.immutable可能具有不同步的读取访问权限。更新可以同步。 - 也许是来自 Scala-STM 的
TMap?但是Ref[Map[Long, _]]可能也一样好,因为 STM 中应该允许并发读取
对我来说,3 号听起来最好?
【问题讨论】:
-
我认为 volatile 会影响集合本身,而不是其内容。
标签: multithreading scala collections