如果ConcurrentHashMap
包含Map,那么内部值映射是否也表现为并发?
以下是我的地图对象
ConcurrentHashMap<String, Map<String, Map<String, String>>> applicationDataMap =
new ConcurrentHashMap<>();
答案 0 :(得分:1)
此处的变量声明仅使用Map
接口。您可以向此添加任何Map
,无论是否并发。如果您要求所有包含的映射都是并发的,则必须将它们声明为:
ConcurrentHashMap<String, ConcurrentHashMap<String, ConcurrentHashMap<String, String>>> applicationDataMap = new ConcurrentHashMap<>();
答案 1 :(得分:1)
您可以在Map
中添加任何类型的applicationDataMap
。
E.g:
Map<String, String> innerInnerMap = new TreeMap<>();
Map<String, Map<String, String>> innerMap = new HashMap<>();
innerMap.put("innerKey", innerInnerMap);
applicationDataMap.put("key", innerMap);
没有什么可以保护这些内部地图不被多个线程同时访问。如果你想确保它们的有效性,你必须明确地处理它。