Java面试题:ConcurrentHashMap

ConcurrentHashMap

一种线程安全的高效Map集合

jdk1.7之前

底层采用分段的数组+链表实现

请添加图片描述

一个不可扩容的数组:segment[]

数组中的每个元素都对应一个HashEntry数组用以存放数据

当放入数据时,根据key的哈希值找到对应的segment数组下标

找到下标后就会添加一个reentrantlock来上锁

并发情况下,多个线程使用cas的方式来尝试获取锁

同时只有一个线程来操作HashEntry数组的数据

每次上锁锁住整个HashEntry数组

性能较低,但线程安全

jdk1.8之后

底层采用数据结构和HashMap一样,数组加链表/红黑树的结构

放弃了segment的设计

底层采用了CAS+Synchronized的方式来保证并发的安全问题

CAS来控制节点的添加,同一时间只能添加一个数据

Synchronized锁定链表和红黑树的头结点,只要hash不冲突,就不会产生并发问题,提升效率

一个下标下的头结点被锁住不会影响其他的下标

每次只锁住一颗树/链表

影响范围小,分段锁精度更好,性能更好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/625469.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux内核:持续更新

内核源码树 COPYING文件是内核许可证,CREDITS是开发了很多内核代码的开发者列表,MAINTAINERS是维护者列表,它们负责维护内核子系统和驱动程序,makefile是基本内核的makefile 向内核插入驱动模块 命令:insmod xxx.ko …

汇昌联信:拼多多网店该如何开店?

拼多多网店的开设流程并不复杂,但需要细心和耐心去完成每一步。下面将详细阐述如何开设一家拼多多网店。 一、选择商品与定位 开设拼多多网店的第一步是确定你要销售的商品类型,这决定了你的目标客户群体和市场定位。你需要了解这些商品的市场需求、竞争…

日常工作必备!后台网优人必用的办公软件盘点

在后台网优日常工作时,常常会用到一些工作软件。它们可以大大提高网优工作效率,让网优人轻轻松松工作,快快乐乐摸鱼,早早下班! 后台网优工程师们常用的办公软件有哪些?让我们一起来看看 一、GGMap网优利器 …

ES扩缩容

ES扩容 1.1 页面扩容ES1 1.2 拷贝插件及ssl文件 JSON [ec_admin@kde-offline3 ~]$ sudo rsync -avP /usr/kde_ec/2.3.6.6-1/elasticsearch1/plugins/* kde-offline6:/usr/kde_ec/2.3.6.6-1/elasticsearch1/plugins/ ;echo $? [ec_admin@kde-offline3 ~]$ sudo rsync -avP /us…

Docker常用镜像安装

1. mysql 1.1 安装 获取镜像 docker pull mysql:8.0.30创建文件挂载目录 创建容器并运行 docker run -p 3306:3306 --name mysql8 \ -v /home/docker/mysql8/log:/var/log/mysql \ -v /home/docker/mysql8/data:/var/lib/mysql \ -v /home/docker/mysql8/mysql-files:/va…

专访安克创新CEO阳萌:仿生算法与存算一体芯片的兴起

在这篇博客中,我们将探讨人工智能的未来发展方向,特别是围绕大模型、存算一体芯片以及仿生算法的讨论。通过对安克创新CEO阳萌的专访内容进行分析,我们将尝试解答一些关于AI发展的关键问题,并对未来的技术趋势进行预测。 引言 …

《四》系统模块整体功能关联与实现

在上一篇里,我们完成了动作的创建,那么这一次,我们把它加载到界面上,把需要是实现的动作都加上。 MyWord::MyWord(QWidget *parent): QMainWindow(parent) {mdiAreanew QMdiArea;mdiArea->setHorizontalScrollBarPolicy(Qt::S…

工厂数字化转型实现路线

工厂数字化转型实现路线 随着科技的飞速发展,数字化转型已成为当今社会的热门话题。尤其是对于工厂企业而言,数字化转型更是一种必然趋势。然而,在这个过程中,许多企业面临着种种困难和挑战。因此,探讨工厂企业数字化转…

NASA数据即——Aqua AIRS 第 3 级光谱出射长波辐射 (OLR) 月报 (AIRSIL3MSOLR)

Aqua AIRS Level 3 Spectral Outgoing Longwave Radiation (OLR) Monthly (AIRSIL3MSOLR) Aqua AIRS 第 3 级光谱出射长波辐射 (OLR) 月报 (AIRSIL3MSOLR) 简介 这个 L3 光谱出射长波辐射(OLR)是根据密歇根大学黄向磊开发的算法,利用 AIRS…

2024精选7个wordpress模板

通用多用途wordpress模板 中国红WordPress模板,适合服务行业企业建站的通用多用途wordpress模板。 WordPress是一款使用PHP语言开发的开源内容管理系统(CMS),最初设计用于个人博客,但随着时间的发展,它已经演化成为一个功能强大的…

【算法优选】 动态规划之子数组、子串系列——壹

文章目录 🎋前言🎋最大子数组和🚩题目描述🚩算法思路🚩代码实现 🌴环形子数组的最大和🚩题目描述🚩算法思路:🚩代码实现 🌲乘积最大子数组&#x…

【PostgreSQL支持中文的全文检索插件(zhparser)】

PostgreSQL本身是支持全文检索的,提供两个数据类型(tsvector,tsquery),并且通过动态检索自然语言文档的集合,定位到最匹配的查询结果。其内置的默认的分词解析器采用空格进行分词,但是因为中文的词语之间没…

想要安装Word、Excel、PowerPoint,但却找不到对应软件?

前言 前几天有小伙伴在找Word和Excel软件,但找了半天都没发现怎么安装。 这件事情其实很简单,那就是Word、Excel并不是单独的一个个软件,而是集成在MS Office套件里的。 咱们大部分人常用的办公软件大概是Word、Excel和PowerPoint这三个。还…

保研机试之【设备驱动程序】

B选项: 综上,我认为这道题选择D~

Host is not allowed to connect to this MySQL server解决方法

在阿里云服务器上安装了Mysql数据库,在阿里云上使用一切正常。我用navicat 去连接服务器时显示Host is not allowed to connect to this MySQL server。 ​ 看见这个错误,第一反应是是不是阿里云服务器防火墙没有配置mysq的出入站规则。去阿里云检查了一…

Day 46 139.单词拆分

单词拆分 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s “leet…

Nginx配置Referer防盗链

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 HTTP Referer是Hea…

ASP.NET银行大厅自助信息系统的开发与实现

摘 要 本毕业设计在基于银行业务大厅现有业务的基础上,针对自助银行的概念和其独有特点,通过.NETSQL技术,开发一个简单的银行大厅自助信息系统,完成一些自助银行的业务需求如帐户信息查询、帐户挂失、自助交费、留言、新闻查询…

惠普发布全新AI战略,重塑办公空间 引领企业智能化新浪潮

近日、全球知名科技公司惠普在北京隆重举办了以“用智能,开启无限可能”为主题的2024惠普商用AI战略暨AI PC新品发布会,此次盛会标志着惠普在人工智能领域迈出了重要一步,惠普紧跟时代步伐,推出了更高效、更安全、更灵活的AI PC产…

AI与人类生活的融合:安克创新CEO阳萌的深度洞见

安克创新CEO阳萌分享了他对人工智能未来发展的深刻见解。阳萌不仅深入探讨了大模型技术的应用前景,还对AI与人类生活的融合提出了引人入胜的思考。以下是对这次访谈内容的总结和分析。 大模型技术的现实应用 阳萌提到,尽管大模型在处理通用知识方面表…