AQS内部的阻塞队列实现原理:基于双向链表,通过对head/tail进行CAS操作,实现入队和出队。
ConcurrentLinkedQueue 的实现原理和AQS 内部的阻塞队列类似:同样是基于 CAS,同样是通过 head/tail指针记录队列头部和尾部,但还是有稍许差别。
其次,在AQS的阻塞队列中,每次入队后,tail一定后移一个位置;每次出队,head一定后移一个 位置,以保证head指向队列头部,tail指向链表尾部。
(相关资料图)
但在ConcurrentLinkedQueue中,head/tail的更新可能落后于节点的入队和出队,因为它不是直 接对 head/tail指针进行 CAS操作的,而是对 Node中的 item进行操作。
二、ConcurrentHashMapHashMap通常的实现方式是“数组+链表”,这种方式被称为“拉链法”。ConcurrentHashMap在这个 基本原理之上进行了各种优化。
首先是所有数据都放在一个大的HashMap中;其次是引入了红黑树。
如果头节点是Node类型,则尾随它的就是一个普通的链表;如果头节点是TreeNode类型,它的后 面就是一棵红黑树,TreeNode是Node的子类。
链表和红黑树之间可以相互转换:初始的时候是链表,当链表中的元素超过某个阈值时,把链表转 换成红黑树;反之,当红黑树中的元素个数小于某个阈值时,再转换为链表。
那为什么要做这种设计呢?
1. 使用红黑树,当一个槽里有很多元素时,其查询和更新速度会比链表快很多,Hash冲突的问 题由此得到较好的解决。
2. 加锁的粒度,并非整个ConcurrentHashMap,而是对每个头节点分别加锁,即并发度,就是 Node数组的长度,初始长度为16。
3. 并发扩容,这是难度最大的。当一个线程要扩容Node数组的时候,其他线程还要读写,因此 处理过程很复杂,后面会详细分析。
由上述对比可以总结出来:这种设计一方面降低了Hash冲突,另一方面也提升了并发度。
三、ConcurrentSkipListMap/SetConcurrentHashMap 是一种 key 无序的 HashMap,ConcurrentSkipListMap则是 key 有序的, 实现了NavigableMap接口,此接口又继承了SortedMap接口。
1、ConcurrentSkipListMap
为什么要使用SkipList实现Map?
在Java的util包中,有一个非线程安全的HashMap,也就是TreeMap,是key有序的,基于红黑树实 现。 而在Concurrent包中,提供的key有序的HashMap,也就是ConcurrentSkipListMap,是基于 SkipList(跳查表)来实现的。
这里为什么不用红黑树,而用跳查表来实现呢?
也就是目前计算机领域还未找到一种高效的、作用在树上的、无锁的、增加和删除节点的办法。
2、ConcurrentSkipListSet
ConcurrentSkipListSet只是对ConcurrentSkipListMap的简单封装。
- 我慢再次聊聊并发编程:并发容器|每日关注
- 风冷和直冷冰箱的区别表现(风冷和直冷冰箱的区别) 世界微头条
- 颈部皮肤松弛如何挽救_颈部皮肤松弛怎么办
- 告诫:夏季这样带娃等于“毁”了娃,许多家长还在做,快停手!-动态
- 【天天时快讯】警惕!四川今年以来最大范围地灾预警发布 涉80个县市区
- 新股IPO“一查就撤”不应成常态_每日速讯
- 天天消息!同比增长31.9%,高于全省21.7个百分点 泰安工业推进机构完成半年“时间、任务双过半”的目标要求
- 一些用人单位为了营销和扩大宣传,强制要求员工转发工作信息引发热议 “朋友圈”,公司怎能想占就占
- 今日快看!英诺合伙人王晟:近3年重点投AIGC基础设施,应用端没有好机会
- 焦点信息:2023年07月03日07时40分沙特里亚尔/人民币汇率最新报价
- 当前滚动:两岸妈祖敬仰者共聚“妈祖故里”湄洲岛:把最美的歌曲唱给“妈妈”听
- 带伞!今明两天北京雷阵雨登场 最高气温34℃闷热感明显-世界播资讯
- 女篮亚洲杯:韩旭荣膺MVP 携李梦入选最佳阵容
- 中国顶尖神经内镜专家厦门传授前沿技术 世界观点
- 中国女排3:2逆转美国队 晋级世联赛总决赛
- 美财政部部长耶伦将访华|观点
- 电气风电:首款自研生产S98超长叶片顺利下线
- 全球热推荐:招商证券:经济企稳 A股重回上行周期
- 中信建投:建议把握高赔率和业绩安全性线索进行布局|天天日报
- 银河证券:国内家电消费有望提升 关注三条主线|世界快看点
- 中信证券:执行器及其核心零部件企业具备投资价值
- “这场危机比2005年那场猛烈10倍”-世界今头条
- 环球热讯:u880(中兴)
- 苏丹首都圈大部分医院停止服务 民众缺医少药 观速讯
- 【环球聚看点】美共和党炫耀“月球没其他国旗”,被网友贴五星红旗打脸
- 焦点日报:委内瑞拉军方一飞机爆炸 致一人死亡
- 爱情里,十二星座女可以接受多大年龄差?双鱼:真爱无界限 世界观热点
- 大学录取通知书里,藏着这些中国式浪漫
- 全球最资讯丨文化产业年营收超16.5万亿元(新数据 新看点)
- 当前最新:宜宾商行近日港股递表 多家银行受益白酒基因