首页 > 其他 > 详细

hashmap和ConcurrentHashMap

时间:2017-09-06 18:08:00      阅读:340      评论:0      收藏:0      [点我收藏+]

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

原文:http://www.cnblogs.com/lmjk/p/7486101.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!