2021年7月12日星期一

Java面试题(十二):ConcurrentHashMap原理,jdk7和jdk8版本的区别

1. ConcurrentHashMap原理,jdk7和jdk8版本的区别

jdk7:

数据结构:ReentrantLock+HashEntry,一个Segment中包含一个HashEntry数组,每个HashEntry又是一个链表结构。

元素查询:二次Hash,第一次Hash定位到Segment,第二次Hash定位到元素所在的链表的头部。

锁:Segment分段锁 Segment继承了ReentrantLock,锁定操作的Segment,其他的Segment不受影响,并发度为Segment个数,可以通过构造函数指定,数组扩容不会影响其他的Segment。

get方法无需加锁,volatile保证

jdk8:

数据结构:synchronized+CAS+Node+红黑树,Node的val和next都用volatile修饰,保证可见性。

查找,替换,赋值操作都使用CAS

锁:锁链表的head节点,不影响其他元素的读写,锁......

原文转载:http://www.shaoqun.com/a/869439.html

跨境电商:https://www.ikjzd.com/

blackbird:https://www.ikjzd.com/w/950

dhl:https://www.ikjzd.com/w/516

sgshop:https://www.ikjzd.com/w/1982


1.ConcurrentHashMap原理,jdk7和jdk8版本的区别jdk7:数据结构:ReentrantLock+HashEntry,一个Segment中包含一个HashEntry数组,每个HashEntry又是一个链表结构。元素查询:二次Hash,第一次Hash定位到Segment,第二次Hash定位到元素所在的链表的头部。锁:Segment分段锁Segment继承了ReentrantLo
丽江住宿怎样选客栈?:http://www.30bags.com/a/401337.html
丽江自驾游_丽江旅游攻略:http://www.30bags.com/a/427378.html
丽江自助游大概要多少钱?:http://www.30bags.com/a/428933.html
丽江自助游多少钱 :http://www.30bags.com/a/414104.html
宝宝我们来做床上运动 宝宝坐上来自己动:http://lady.shaoqun.com/a/247688.html
你下面好湿我给你添 男朋友在车里㖭我出好多水:http://www.30bags.com/m/a/249758.html
宝宝我们换个姿势楼梯间 每走走一步重重地撞一下:http://www.30bags.com/m/a/249877.html
口述:我和小姨子那些旧事儿(上)(11/12):http://www.30bags.com/m/a/249644.html
男人的性能力,一个动作就能看出来:http://lady.shaoqun.com/a/418066.html
"战争"持续的时间越长越好?会有什么后果?:http://lady.shaoqun.com/a/418067.html
女性什么时候容易"性饥渴":http://lady.shaoqun.com/a/418068.html
惊讶!坐姿也影响性欲。你的坐姿怎么样?:http://lady.shaoqun.com/a/418069.html

没有评论:

发表评论