ConcurrentMap并发映射
时间:2020-01-09 10:36:25 来源:igfitidea点击:
" java.util.concurrent.ConcurrentMap"接口表示一个Map,该Map能够处理对其的并发访问(放置和获取)。
ConcurrentMap除了从其超级接口java.util.Map继承的方法外,还具有其他一些原子方法。
ConcurrentMap实现
由于ConcurrentMap是一个接口,因此我们需要使用其实现之一才能使用它。 java.util.concurrent包包含ConcurrentMap接口的以下实现:
- ConcurrentHashMap
并发哈希映射
ConcurrentHashMap与java.util.HashTable类非常相似,不同之处在于ConcurrentHashMap比HashTable具有更好的并发性。从中读取时,ConcurrentHashMap不会锁定Map。另外,ConcurrentHashMap在写入时不会锁定整个Map。它仅在内部锁定" Map"的写入部分。
另一个区别是,如果在迭代时更改了ConcurrentHashMap,则ConcurrentHashMap不会引发ConcurrentModificationException。但是,Iterator不能被多个线程使用。
请查看官方JavaDoc以获取有关ConcurrentMap和ConcurrentHashMap的更多详细信息。
ConcurrentMap示例
这是一个如何使用ConcurrentMap接口的例子。该示例使用ConcurrentHashMap实现:
ConcurrentMap concurrentMap = new ConcurrentHashMap();
concurrentMap.put("key", "value");
Object value = concurrentMap.get("key");

