0

Still explicit lock requires on ConcurrentHashMap put and get operations ?

Regards,

Chinnu

4

2 回答 2

1

ConcurrentHashMap 是普通 HashMap 的线程安全替代方案 - 因此不需要显式锁定。并发集合中的所有数据结构都使用这种方法。

于 2013-08-25T18:01:26.143 回答
0

ConcurrentHashMap 是线程安全的,不需要显式锁定。其上的所有操作都是线程安全的,但检索 ( get) 操作不使用任何锁定,并且可能与更新操作 (putremove) 重叠,从而反映最近完成的更新操作的结果。此外,对于任何更新操作,完整的 ConcurrentHashMap 也永远不会被锁定,而是锁定发生在桶(段)级别。

putIfAbsent如果映射尚未包含指定的键,则该方法只需放置键值映射,等效于:

   if (!map.containsKey(key))
       return map.put(key, value);
   else
       return map.get(key);
于 2013-08-25T19:07:18.387 回答