【问题标题】:fast non-lock hashmap<Integer,Integer> or hashmap<Integer,Double> in Java?Java中的快速非锁定hashmap<Integer,Integer>或hashmap<Integer,Double>?
【发布时间】:2016-02-24 16:18:50
【问题描述】:

我正在寻找一种支持多线程的快速实现,用于存储从整数到整数或双精度的映射。我已经尝试过 ConcurrentHashMap 但对加速因素没有印象。我也认为如果还不错的话,我可以自己实现一个。

【问题讨论】:

  • 你真的真的不应该尝试自己实现hashmap的并发实现。 ConcurrentHashMap真的真的很擅长。
  • 很可能,您实现的瓶颈不是来自ConcurrentHashMap,而是来自其他因素,例如磁盘读取、其他地方的同步不佳......
  • 就我而言,这很简单。假设我有一个整数或双精度数组。我创建了一次,并将更改长度左右。我想在阵列上运行多个线程。在每个操作中,一个线程只是改变数组的值。我想要大约 16-64 个线程,并且数组 >64000,所以我猜冲突还不错。
  • 如果你能指出一些实现,那就太棒了。
  • 数组的大小会随着时间而改变吗?

标签: hashmap java.util.concurrent concurrenthashmap


【解决方案1】:

由于大小是固定的,您可能希望使用来自 Guava 的 AtomicIntegerArrayAtomicDoubleArray

【讨论】:

  • 非常感谢。还有其他实现吗?我会整体比较它们,看看哪一个适合我的目的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-30
  • 2015-02-19
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多