JAVA多线程-ConcurrentMap

【JAVA多线程-ConcurrentMap】JAVA.util.concurrent.ConcurrentMap代表着可以并发访问(存和取元素)的 Map .
ConcurrentMap在继承了java.util.Map父接口的基础上额外增加了一些原子方法 。
ConcurrentMap实现既然ConcurrentMap是个接口, 如果需要用它则需要实现这个接口 。java.util.concurrent包含了ConcurrentMap 的实现:

  • ConcurrentHashMap
ConcurrentHashMapConcurrentHashMap 和java.util.HashTable 类非常相似, 除了ConcurrentHashMap的并发性比 HashTable更好. ConcurrentHashMap取元素的时候不加锁. 另外, ConcurrentHashMap 写元素的时候不锁整个 Map . 当写入的时候Map内部只锁了一部分.
另外的不同是,ConcurrentHashMap 当在迭代时被修改不会抛出 ConcurrentModificationException. 不过,Iterator 不是为多个线程设计的 。
有关ConcurrentMap和ConcurrentHashMap的更多详细信息,请查看官方JavaDoc 。ConcurrentMap例子下面是如何使用 ConcurrentMap 的例子. 例子用了 ConcurrentHashMap实现:
ConcurrentMap concurrentMap = new ConcurrentHashMap(); concurrentMap.put("key", "value"); Object value = https://www.isolves.com/it/cxkf/yy/JAVA/2020-07-22/concurrentMap.get("key");参考翻译:http://tutorials.jenkov.com/java-util-concurrent/concurrentmap.html




    推荐阅读