ConcurrentHashMap包含地图对象

问题描述 投票:1回答:2

如果ConcurrentHashMap包含Map那么,内部值映射是否也表现为并发?以下是我的地图对象

ConcurrentHashMap<String, Map<String, Map<String, String>>> applicationDataMap = 
    new ConcurrentHashMap<>();
java dictionary concurrenthashmap
2个回答
1
投票

这里的变量声明仅使用Map接口。你可以添加任何Map,无论是否并发。如果您要求所有包含的映射都是并发的,则必须将它们声明为:

ConcurrentHashMap<String, ConcurrentHashMap<String, ConcurrentHashMap<String, String>>> applicationDataMap = new ConcurrentHashMap<>();

1
投票

你可以把任何类型的Map放在applicationDataMap

Ef。:

Map<String, String> innerInnerMap = new TreeMap<>();
Map<String, Map<String, String>> innerMap = new HashMap<>();
innerMap.put("innerKey", innerInnerMap);
applicationDataMap.put("key", innerMap);

没有什么可以保护这些内部映射不被多个线程同时访问。如果你想确保它们的有效性,你必须明确地处理它。

© www.soinside.com 2019 - 2024. All rights reserved.