ConcurrentHashMap是否适合快速更新并发数据结构?

时间:2014-07-03 20:43:42

标签: java concurrency

我正在设计一个应用程序,将IP地址映射到有关该IP地址的某些信息。目前,我将信息存储在ConcurrentHashMap中。密钥列表可能会经常更改,因此我会抓取列表的最新副本并每分钟更新一次。

但是,我可能每分钟要查询这个数据结构几千次。使用ConcurrentHashMap是否有意义?列表更新时会有明显的延迟(大于1毫秒)吗?列表中最多可包含1000个项目。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

您可以在文档中搜索ConcurrentHashMap,您将看到检索操作通常不会阻塞,因此它们就像在普通的HashMap中一样。检索操作包括删除和获取。你说密钥列表可能经常更改,所以是的,我建议你使用ConcurrentHashMap。 以下是文档:http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html

答案 1 :(得分:0)

由于项目很少,所以不太可能有任何延迟。在查看big-O表示法时,具有显着错误开销的良好基线大约是每秒1000万次操作。

鉴于您每分钟只查询几千次并且哈希映射为O(1),因此应该没有任何问题。