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");