并发编程:ConcurrentHashMap

时间:2020-07-13 23:55:31   收藏:0   阅读:84

线程安全的集合ConcurrentHashMap

JDK1.7和JDK1.8的区别
1、取消了segment分段设计
2、增加了链表转红黑树的设计

基本原理和HashMap差不多,不熟悉的同学可以先去看看HashMap的结构,本文主要看其对并发安全的设计

ConcurrentHashMap中重要的并发方法

可以看到hashmap中主要的优化就是分段的思想,里面还加了很多细节上的处理。
分段/分片这种思想在分布式场景也非常常见,不知不觉又发现了其实知识点学到一定程度都是相通的。

红黑树

红黑树是一种二叉平衡查找树,它定义了以下规则:

当加入的节点破坏红黑树的关系时,会发生左旋、右旋及重新着色从而达到平衡
左旋:当前节点的右子节点被提起来,当前节点成为其左子节点。旧的右子节点的左子节点成为当前节点的右子节点。
右旋:当前节点的左子节点被提起来,当前节点成为其右子节点。旧的左子节点的右子节点成为当前节点的左子节点。
重新着色:插入节点默认是红色,然后根据平衡规则重新着色。

原文:https://www.cnblogs.com/fcb-it/p/13296389.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!