Apo*_*sia 9 java concurrency hashmap
根据我的理解,从Java 5开始的并发哈希映射为您提供了一个线程安全哈希映射,它不使用对迭代器和更新的阻塞访问(如果并发级别足够).
鉴于以下条件:
使用简单的哈希映射会更好吗?
我的理解是,我可能会更好,因为我的钥匙不会发生冲突 - 我可以保证.但是,通过将相同的存储桶分配给两个不同的密钥,Java实现是否可能会在哈希桶中搞砸?
Jon*_*eet 19
如果您使用多个线程插入,即使键不同,您也一定要使用ConcurrentHashMap或同步插入.平原HashMap 根本就没有安全的并发写入.假设两个线程每个都需要同时扩展内部表...即使他们使用不同的键,这是一个根本上有问题的情况.
ConcurrentHashMap
HashMap
现在,如果你真的真的有很好的证据表明,使用ConcurrentHashMap你的应用程序生命周期的其他部分造成的问题(我很怀疑它),你也许可以建立一个并发的哈希表入手,将其转换为一个HashMap(或者甚至是来自Guava的不可变集合在一个线程中,确保在"最终地图发布"和"线程阅读最终地图"之间发生了前所未有的障碍.
归档时间:
13 年,5 月 前
查看次数:
1740 次
最近记录: