Concurrenthashmap上的显式锁定

时间:2013-08-25 17:49:41

标签: java multithreading

仍然显式锁需要ConcurrentHashMap put和get操作吗?

此致

Chinnu

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

如果地图尚未包含与以下内容相同的指定键,putIfAbsent方法只会放置键值映射:

   if (!map.containsKey(key))
       return map.put(key, value);
   else
       return map.get(key);