HashMap HashTable和ConcurrentHashMap的区别
答案:2 悬赏:10 手机版
解决时间 2021-01-28 05:16
- 提问者网友:动次大次蹦擦擦
- 2021-01-28 01:16
HashMap HashTable和ConcurrentHashMap的区别
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-01-28 02:08
最大的区别就是ConcurrentHashMap是线程安全的,hashMap不是线程安全的。
为什么线程安全呢:
ConcurrentHashMap代码中可以看出,它引入了一个“分段锁”的概念,具体可以理解为把一个大的Map拆分成N个小的HashTable,根据key.hashCode()来决定把key放到哪个HashTable中。
在ConcurrentHashMap中,就是把Map分成了N个Segment,put和get的时候,都是现根据key.hashCode()算出放到哪个Segment中:
为什么线程安全呢:
ConcurrentHashMap代码中可以看出,它引入了一个“分段锁”的概念,具体可以理解为把一个大的Map拆分成N个小的HashTable,根据key.hashCode()来决定把key放到哪个HashTable中。
在ConcurrentHashMap中,就是把Map分成了N个Segment,put和get的时候,都是现根据key.hashCode()算出放到哪个Segment中:
全部回答
- 1楼网友:duile
- 2021-01-28 02:15
类 hashmap
所已实现接口:serializable, cloneable, map
基于哈希表 map 接口实现实现提供所选映射操作并允许使用 null 值 null 键(除非同步允许使用 null 外hashmap 类与 hashtable 致相同)类保证映射顺序特别保证该顺序恒久变
类 concurrenthashmap
所已实现接口:
serializable, concurrentmap, map
支持获取完全并发更新所期望调整并发哈希表类遵守与
hashtable 相同功能规范并且包括应于 hashtable 每版本尽管所操作都线程安全获取操作
必锁定并且 支持某种防止所访问式锁定整表类通程序完全与 hashtable
进行互操作取决于其线程安全与其同步细节关
类与 hashtable 相似与 hashmap 同 允许 null 用作键或值
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯