确保ConcurrentSkipListMap中的并发性

时间:2014-04-16 09:19:18

标签: java map

我在理解ConcurrentSkipListMap的concureency时遇到问题。

我有以下声明:

ConcurrentSkipListMap<Integer, ConcurrentSkipListMap<String, Configuration>> map

是否也可以像下面这样的形式使用?

ConcurrentSkipListMap<Integer, HashMap<String, Configuration>> map

可以保留所有地图数据的并发性吗?

提前致谢!

2 个答案:

答案 0 :(得分:2)

这实际上取决于如何访问内部地图

如果您在此内部地图上没有任何并发​​,则可以将其声明为HashMap。否则,如果多个线程可以同时访问它,那么您应该使用并发结构,例如ConcurrentHashMap

答案 1 :(得分:1)

这取决于你想拥有的操作。例如,如果需要在嵌套映射中使用putIfAbsent,则需要嵌套的ConcurrentSkipListMap。 如果您将获得嵌套映射并使用多线程代码处理它,那么它应该是Concurrent&lt; ...&gt; Map。