文档章节

concurrenthashmap1.8优化

B
 Bb进阶
发布于 09/15 11:19
字数 378
阅读 11
收藏 0
JDK

1. JDK1.8取消了segment数组,直接用table保存数据,锁的粒度更小,减少并发冲突的概率。

2. 1.8存储数据时采用了链表+红黑树的形式,纯链表的形式时间复杂度为O(n),红黑树则为O(logn),性能提升很大。什么时候链表转红黑树?当key值相等的元素形成的链表中元素个数超过8个的时候。

3. 1.8的实现降低锁的粒度,JDK1.7版本锁的粒度是基于Segment的,包含多个HashEntry,而JDK1.8锁的粒度就是HashEntry(首节点)

4. 1.8版本的数据结构变得更加简单,使得操作也更加清晰流畅,因为已经使用synchronized来进行同步,所以不需要分段锁的概念,也就不需要Segment这种数据结构了,由于粒度的降低,实现的复杂度也增加了

5. 1.8使用红黑树来优化链表,基于长度很长的链表的遍历是一个很漫长的过程,而红黑树的遍历效率是很快的,代替一定阈值的链表,这样形成一个最佳拍档

© 著作权归作者所有

B
粉丝 1
博文 54
码字总数 31455
作品 0
太原
私信 提问
不一样的ConcurrentHashMap1.8源码分析

文章简介 想必大家对HashMap数据结构并不陌生,JDK1.7采用的是数组+链表的方式,JDK1.8采用的是数组+链表+红黑树的方式。虽然JDK1.8对于HashMap有了很大的改进,提高了存取效率,但是线程安全...

peakedness丶
06/20
63
0
填坑利器?Redis如何弥补传统MySQL架构的不足。

传统MySQL架构难以满足的现代应用程序需求包括: 传统数据库的读/写速度对会话存储等用例不友好; 引入新表或修改现有模式非常复杂,这也导致了添加新功能和应用程序会有困难; 传统数据库会受...

Java干货分享
2018/11/25
24
0
Jdk1.8 HashMap源码分析

1. 概述 平常我们开发中,可能用的最多的容器就是HashMap。我们来看下HashMap的结构如下图。 image.png 它是由一个Node数组,每个数组元素又是有一个链表构成。接下来我们结合源码来分析下p...

maskwang520
2018/01/12
0
0
多线程(四)之并发容器

一、并发容器 ConcurrentHashMap 为什么使用ConcurrentHashMap 在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,HashMap在并发执行put操作时,出发rehash时,可...

天空小小
2018/01/11
52
0

没有更多内容

加载失败,请刷新页面

加载更多

没有更多内容

记一次项目启动报java.lang.StackOverflowError

项目是spring boot,之前没有问题,突然有一次debug方式启动的时候报这个错误。 因为其他同事没有问题,线上也没有问题,所以先排除了是代码问题。 开始以为电脑开的软件太多,然后给jvm的内存...

chro008
13分钟前
7
0
idea 2019.2免费激活码

亲测有效到2020.6 812LFWMRSH-eyJsaWNlbnNlSWQiOiI4MTJMRldNUlNIIiwibGljZW5zZWVOYW1lIjoi5q2j54mIIOaOiOadgyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb......

Iverson58
21分钟前
5
0
移动APP开发中的重要注意事项

您的移动app在变化吗?如果没有,请确保遵循这些提示进行移动app开发。大多数行业的IT领导者都优先考虑劳动力和消费者的移动性。实现成功的移动app开发具有挑战性,涉及在app功能开发的基础上...

a429011717
28分钟前
5
0
Qt编写自定义控件69-代码行数统计

一、前言 代码行数统计主要用来统计项目中的所有文件的代码行数,其中包括空行、注释行、代码行,可以指定过滤拓展名,比如只想统计.cpp的文件,也可以指定文件或者指定目录进行统计。写完这...

飞扬青云
46分钟前
10
0
驰骋工作流引擎-ccflow关于 “ 是否自动计算未来的处理人”的功能变更

关键字:流程未来节点处理人 工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 业务背景:一个流程在启动起来后,是可以对一些节点计算出来处理人是谁,流程的走向。对于另...

孟娟
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部