仍然显式锁需要ConcurrentHashMap put和get操作吗?
此致
Chinnu
答案 0 :(得分:1)
ConcurrentHashMap是普通HashMap的线程安全替代方法 - 因此不需要显式锁定。并发集合中的所有数据结构都使用这种方法。
答案 1 :(得分:0)
ConcurrentHashMap是线程安全的,不需要显式锁定。它上面的所有操作都是线程安全的,但检索(get
)操作不使用任何锁定,并且可能与更新操作(put
和remove
)重叠,从而反映最近的结果完成更新操作。此外,对于任何更新操作,完整的ConcurrentHashMap永远不会被锁定,而是锁定发生在存储桶(段)级别。
如果地图尚未包含与以下内容相同的指定键,putIfAbsent
方法只会放置键值映射:
if (!map.containsKey(key))
return map.put(key, value);
else
return map.get(key);