HashMap和ConcurrentHashMap的区别

余生颓废 提交于 2019-11-28 07:44:50

为了线程安全,ConcurrentHashMap 引入了一个 “分段锁” 的概念。具体可以理解把一个大的 map 拆分成 N 个小的 Map 。最后再根据 key.hashcode( )来决定放到哪一个 hashmap 中去。

hashmap 本质是数组+链表,根据 key.hashcode( ) 计算出数组对应下标。如果多个 key 对应同一个下标,用一个链表串起来,新数据在前面。

ConcurrentHashMap :在 hashmap 基础上,ConcurrentHashMap 将数据分解成多个 segment (默认 16 个),每次操作对 segment 加锁,避免多线程锁的几率,提高并发效率。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!