hashmap和ConcurrentHashMap

Posted 流氓剑客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hashmap和ConcurrentHashMap相关的知识,希望对你有一定的参考价值。

hashmap市基于table和单向链表

table中存放hash值,table中存放着单向链表,查询时先计算对象hash值,找到table中对应值,然后查询链表。

ConcurrentHashMap继承与Hashmap通过Segment在读写数据时锁部分hashmap的hashtable,而不是锁整个map。

 

Collections.synchronizedMap可以吧任何map转化成安全性的 但是是全部锁。
CAS(Compare-and-Swap 比较和交换)与平台相关,它有三个操作数,内存位置值(V),旧的预期值(A),新值(B)。CAS指令执行时,当V=A时,处理器用B的值跟新V的值,否则不执行。上述的过程是一个原子操作。JDK1.5引入的CAS,它在sun.misc.Unsafe类里面方法提供。里面调用了Native方法。
 
朋友说他们用CAS+redis 解决分布式锁,把内存值和预期值存放到redis中

 

以上是关于hashmap和ConcurrentHashMap的主要内容,如果未能解决你的问题,请参考以下文章

ConcurrentHashMap 与同步 HashMap

hashmap和ConcurrentHashMap

java concurrenthashmap和hashmap的区别

HashMap和ConcurrentHashMap实现原理及源码分析

ConcurrentHashMap以及HashMap,HashTable的区别

HashMap 和 ConcurrentHashMap 的区别