0 0

ConcurrentMap和HashMap的区别3

ConcurrentMap和HashMap的区别说的具体点   谢谢

问题补充:
khan 写道
ConcurrentMap 是线程安全的,而hashMap不是线程安全的,ConcurrentMap的操作都是原子操作,hashMap不是啊!


这里说的原子操作是什么意思  HashMap 就不是原子操作了吗
2011年12月07日 11:09

3个答案 按时间排序 按投票排序

0 0

采纳的答案

1。hashMap可以有null的键,concurrentMap不可以有
2。hashMap是线程不安全的,在多线程的时候需要Collections.synchronizedMap(hashMap),ConcurrentMap使用了重入锁保证线程安全。
3。在删除元素时候,两者的算法不一样。
http://sinly.iteye.com/admin/blogs/1270748
http://sinly.iteye.com/admin/blogs/1264762

2011年12月09日 14:14
0 0

ConcurrentMap 是线程安全的,而hashMap不是线程安全的,ConcurrentMap的操作都是原子操作,hashMap不是啊!

2011年12月07日 11:15
0 0

引用
ConcurrentMap
提供其他原子 putIfAbsent、remove、replace 方法的 Map。


它扩展了Map接口,比HashMap多了几个原子操作的方法

2011年12月07日 11:14

相关推荐

    Java-concurrentMap-内存模型深入分析-HotCode

    JMM规定了内存的可见性、原子性和有序性,这对于理解`concurrentMap`的工作机制至关重要。例如,`ConcurrentHashMap`使用了分段锁策略,每个段都是一个独立的`HashMap`,通过并发控制减少锁的粒度,提高并发性能。...

    Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)

    在Java编程中,Map接口是用于存储键值对的数据结构,而Java提供了多种Map的实现,包括TreeMap、HashMap和ConcurrentSkipListMap。本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**...

    高级程序员必会的HashMap的线程安全问题,适用于0~2年的.7z

    1. **使用线程安全的类**:Java提供了一些线程安全的Map实现,如`java.util.concurrent.ConcurrentHashMap`。ConcurrentHashMap使用分段锁技术,使得在保证线程安全的同时,提供了较好的并发性能。 2. **同步访问**...

    java阿里巴巴常用面试题

    5. **ConcurrentMap与HashMap的区别** - **ConcurrentMap** 是Java并发编程库`java.util.concurrent`中的接口,提供了线程安全的哈希映射操作。相比于HashMap,它提供了更高的并发性能,如`ConcurrentHashMap`就是...

    Java魔法解密:揭秘HashMap底层机制.pptx.pptx

    为了解决这一问题,开发者可以使用`Collections.synchronizedMap()`方法对HashMap进行包装,或者直接使用线程安全的`java.util.concurrent.ConcurrentHashMap`类。 **HashMap的性能优化** HashMap的性能优化主要...

    lmn-concurrent-hashmap:用于并行模型检查的高性能并发哈希表 C 库

    lmn-concurrent-hashmap 用于并行模型检查的高性能并发哈希映射的 C/C++ 库 要求 autoconf 2.69 automake 1.11.3 gcc 4.6.3 g++ 4.6.3 如何构建 $ autoreconf -i $ ./configure $ make 内容 细粒度锁 ChainHash ...

    java面试题

    4. **ConcurrentMap和HashMap的区别**: - `ConcurrentMap`是线程安全的Map接口,提供高效并发操作,例如`ConcurrentHashMap`。 - `HashMap`不是线程安全的,多线程环境下需手动同步。 5. **Tomcat、Apache、...

    一文让你彻底理解JavaHashMap和ConcurrentHashMap

    众所周知HashMap底层是基于数组+链表组成的,不过在jdk1.7和1.8中具体实现稍有不同。1.7中的数据结构图:先来看看1.7中的实现。这是HashMap中比较核心的几个成员变量;看看分别是什么意思?初始化桶大小,因为底层是...

    TBB 开源库及并发 Hashmap 的使用

    TBB 并发容器是 TBB 中的一个重要组成部分,提供了一些支持多线程并发访问的容器,如 concurrent_vector、concurrent_bound_queue、concurrent_priority_queue、concurrent_hash_map、concurrent_unordered_map 等。...

    hashmap-thread-test:测试 Java HashMap 是否是线程安全的

    1. **Collections.synchronizedMap()**:可以使用`Collections.synchronizedMap()`静态方法将`HashMap`包装成线程安全的`SynchronizedMap`。但请注意,尽管这个方法可以确保并发修改的安全,但仍然无法避免迭代时的...

    Map集合的继承关系图.pdf

    3. ConcurrentMap:这个接口的实现提供了针对并发访问和更新操作的原子操作,通常用在多线程环境中。 4. Map.Entry:Map内部的一个私有静态接口,用于表示键值对。 在Map接口的实现类中,有几个最为常用的实现: 1...

    JAVA并发容器代码随读1

    - ConcurrentMap 是 Map 接口的一个并发版本,例如 ConcurrentHashMap,它提供了高并发下的高效读写操作,而不需要像普通 HashMap 那样使用全局锁。 - ConcurrentSkipListSet 基于跳表(Skip List)实现,提供高效的...

    Java中遍历ConcurrentHashMap的四种方式详解

    ConcurrentHashMap是Java中一种高效且线程安全的HashMap实现,它提供了高效的读写操作和良好的扩展性。然而,在遍历ConcurrentHashMap时,需要注意一些关键点,否则可能会出现一些意外的结果。 方式一:使用for-...

    Java理论与实践:构建一个更好的HashMap

    《Java理论与实践:构建一个更好的HashMap》这篇文章深入剖析了Doug Lea的`util.concurrent`包中的`ConcurrentHashMap`实现,旨在展示如何在保证线程安全的同时提高并发性能。`ConcurrentHashMap`相较于传统的`...

    ConcurrentHashMap集合源码学习笔记

    ConcurrentHashMap继承了AbstractMap,实现了ConcurrentMap,Serializable接口,ConcurrentMap又实现了Map接口。ConcurrentHashMap是基于散列表实现的,存储的是Key/Value对,底层使用数组+链表+红黑树+CAS算法实现...

    加锁方法对于Map

    而HashMap和TreeMap等非线程安全的Map实现,在多线程环境下如果需要保证线程安全,我们需要手动添加锁。 对于HashMap,我们可以使用synchronized关键字来同步整个操作,例如: ```java Map, String> map = new ...

    大数据基础复习

    相比普通的HashMap,ConcurrentMap允许在多线程环境下并发地读写而不需外部同步。常见的实现类有: - ConcurrentHashMap:线程安全的并发哈希映射,它是ConcurrentMap的最常见实现,通过分段锁技术实现高并发性能。...

    Brian Goetz - 构造一个更好的hashmap

    这个集合类是为了解决传统线程安全的哈希表(如Hashtable和synchronizedMap)在高并发场景下的性能问题而设计的。ConcurrentHashMap相比于传统的线程安全哈希表,其在保证线程安全的同时,能够提供更高的并发性,...

    阿里面试题:ConcurrentHashMap为什么是线程安全的?

    阿里面试题:ConcurrentHashMap为什么是线程安全的? ConcurrentHashMap,其实是线程安全的...jdk1.7 ConcurrentHashMap是由一个Segment数组和多个HashEntry数组组成 其实就是将HashMap分为多个小HashMap,每个Segme

Global site tag (gtag.js) - Google Analytics