并发(10)

news2024/9/22 4:08:09

目录

61.ReentrantReadWriteLock底层读写状态如何设计的?

62.读锁和写锁的最大数量是多少?

63.本地线程计数器ThreadLocalHoldCounter是用来做什么的?

64.写锁的获取与释放是怎么实现的?

65.读锁的获取与释放是怎么实现的?

66.什么是锁的升降级?

67.为什么HashTable慢?他的并发度是什么?那么ConcurrentHashMap并发度是什么?

68.ConcurrentHashMap在JDK1.7和JDK1.8中实现有什么差别?JDK1.8解决了JDK1.7中什么问题?

69.ConcurrentHashMap JDK1.7实现的原理是什么?

70.ConcurrentHashMap  JDK1.7中Segment数(concurrencyLevel)默认值是多少?为何一旦初始化就不可再扩容?


61.ReentrantReadWriteLock底层读写状态如何设计的?

高16位为读锁,低16位为写锁。

62.读锁和写锁的最大数量是多少?

2的16次方减1。

63.本地线程计数器ThreadLocalHoldCounter是用来做什么的?

本地线程计数器,与对象绑定(线程->线程重入的次数)

64.写锁的获取与释放是怎么实现的?

tryAcquire/tryRelease

65.读锁的获取与释放是怎么实现的?

tryAcquireShared/tryReleaseShared

66.什么是锁的升降级?

ReentrantReadWriteLock为什么不支持锁升级?

ReentrantReadWriteLock不支持锁升级(把持读锁,获取写锁,最后释放读锁的过程)。目的也是保证数据可见性,如果读锁已经被多个线程获取,其中任意线程成功获取了写锁并更新了数据,则其更新对其他获取到读锁的线程是不可见的。

67.为什么HashTable慢?他的并发度是什么?那么ConcurrentHashMap并发度是什么?

HashTable之所以效率低下主要是因为其实现使用了synchronized关键字对put等操作进行加锁,而synchronized关键字加锁是对整个对象进行加锁,也就是说在进行put等修改Hash表的操作时,锁住了整个Hash表,从而使得其表现效率低下。

68.ConcurrentHashMap在JDK1.7和JDK1.8中实现有什么差别?JDK1.8解决了JDK1.7中什么问题?

ConcurrentHashMap JDK1.7:使用分段锁机制实现;

concurrentHashMap JDK1.8:则使用数组+链表+红黑树数据结构和CAS原子操作实现。

69.ConcurrentHashMap JDK1.7实现的原理是什么?

在JDK1.5~1.7版本,Java使用了分段锁机制实现concurrentHashMap。

简而言之,ConcurrentHashMap在对象中保存了一个Segment数组,即将整个Hash表划分为多个分段;而每个Segment元素,他通过继承ReentrantLock来进行加锁,所以每次需要加锁的操作锁住的是一个segment,猪样只要保证每个Segment是线程安全的,也就实现了全局的线程安全;这样,在执行put操作时首先根据hash算法定位到元素属于哪个Segment,然后对该Segment加锁即可。因此,ConcurrentHashMap在多线程并发编程中可是实现多线程put操作。

concurrentLevel:Segment数(并行级别,并发数)。默认是16,也就是说ConcurrentHashMap 有16个Segments,所以理论上,这个时候,最多可以同时支持16个线程并发写,只要他们的操作分别分布在不同的Segment上。这个值可以在初始化的时候设置为其他值,但是一旦初始化以后,他是不可以扩容的。

70.ConcurrentHashMap  JDK1.7中Segment数(concurrencyLevel)默认值是多少?为何一旦初始化就不可再扩容?

默认16

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法】递归算法理解(持续更新)

这里写目录标题 一、递归算法1、什么情况下可以使用递归?2、递归算法组成部分3、案例:求n的阶乘4、编写一个递归函数来计算列表包含的元素数。5、通过递归找到列表中最大的数字。6、通过递归的方式实现二分查找算法。 一、递归算法 递归(Rec…

浅谈LCD屏幕引脚定义识别

学习单片机,总要驱动LCD屏幕,但是对于没有引脚定义的LCD屏幕该如何应对? 本人研究不深,只谈体会。 比如下面这款屏幕 一、第一种方法 百度大法查引脚定义。查询条件可以是FPC上的丝印,或者是屏幕的尺寸,引脚…

sublime如何取消运行代码状态

sublime如何取消运行代码状态 解决方案待续、更新中 解决方案 1 顶部取消: 工具-----取消编译 这个看自己编译器sublime取消编译是否可用,可用则用 ,否则使用下面方法 2 底部栏取消–如图所示: 取消成功: 待续、更新中 ————————————————————— 以上就…

2024前端炫酷源码分享(附效果图及在线演示)

分享10款非常有趣的前端特效源码 其中包含css动画特效、js原生特效、svg特效以及小游戏等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 GSAP-火箭动画特效 GSAP 火箭动画 当氮气充足的情况下 火箭会冲出 并继续飞行 图片…

【Java】设计模式之顺序控制

实际开发中,有时候一些场景需求让多个线程按照固定的顺序依次执行。这个时候就会使用这种模式。 这种模式说白了,就是给线程设定不同的条件,不符合条件的话,就算线程拿到锁也会释放锁进入等待;符合条件才让线程拿到锁…

【解决方案】电能质量在线监测装置和防孤岛保护装置在特斯拉工厂分布式光伏项目的应用

摘要: 随着全球对可再生能源的关注度不断提高,分布式光伏发电系统在近年来得到了广泛应用。分布式光伏发电系统具有环保、灵活等优势,能够有效地缓解能源短缺和环境污染问题。同时,电能质量在线监测装置和防孤岛保护装置在分布式…

leetcode:412. Fizz Buzz(python3解法)

难度:简单 给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中: answer[i] "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。a…

开心自走棋:使用 Laf 云开发支撑数百万玩家

先介绍一下开心自走棋 开心自走棋是一款剑与魔法的烧脑自走棋游戏。以著名的魔幻世界观为蓝本,采用了轻松可爱的画面风格,精致细腻的动画和特效来还原魔兽之战。 现在市面上自走棋游戏多是 PvP 玩法为主,而开心自走棋是以 PvE 玩法为主的&a…

刷了四百道算法题,我在项目里用过哪几道呢?

大家好,我是老三,今天和大家聊一个话题:项目中用到的力扣算法。 不知道从什么时候起,算法已经成为了互联网面试的标配,在十年前,哪怕如日中天的百度,面试也最多考个冒泡排序。后来,…

VTK将二维图像向三维空间中无参数化的曲面表面进行纹理映射(含代码)

实现纹理映射主要是建立纹理空间与模型空间、模型空间与屏幕空间之间的映射关系(见图 6-28): 其中纹理空间可以定义为u-v 空间,每个轴标范围为 (0.1)。其中对于一个纹理图像,其左下角 v 标为 0.0),右上角标为 1.1)。而对于简单的参…

假设与灵敏度分析

灵敏度分析 关系究竟有多敏感,就要进行灵敏度分析 如果你改变了系统参数后,引起这个模型(公式)输出的变化的程度不大,则说明你的模型稳定性较强(即灵敏性较差),反之则反&#xff01…

【Python期末】动态爬取电影Top250数据可视化处理(有GUI界面/无数据库)

诚接计算机专业编程作业(C语言、C、Python、Java、HTML、JavaScript、Vue等),10/15R左右,如有需要请私信我,或者加我的企鹅号:1404293476 本文资源:https://download.csdn.net/download/weixin_47040861/88713693 目录…

简析云能耗管理系统在某高校建筑系统平台的设计与应用

叶根胜 安科瑞电气股份有限公司 上海嘉定 201801 摘要:根据本项目,依托某学院电能计量管理系统、供水计量监督系统、供热计量管理系统等基础平台,制定了高校建筑能耗综合管理系统平台应用的总体框架和方案。该系统可以实时监控、统计能耗和…

https配置证书

HTTPS 基本原理 https 介绍 HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷是为了保证数据安全。 国内外的大型互联网…

STM32CubeMX教程20 SPI - W25Q128驱动

目录 1、准备材料 2、实验目标 3、实验流程 3.0、前提知识 3.1、CubeMX相关配置 3.1.1、时钟树配置 3.1.2、外设参数配置 3.1.3、外设中断配置 3.2、生成代码 3.2.1、外设初始化调用流程 3.2.2、外设中断调用流程 3.2.3、添加其他必要代码 4、常用函数 5、烧录验…

互联网干洗店洗鞋店搭建一套私域小程序有哪些优势?

在快节奏的现代生活中,我们常常面临衣物堆积如山、时间却捉襟见肘的困境。 干洗店在中国各大城市随处可见,假如每位顾客每月都需要一套干洗服务,那么一个50万人口的城市每月就有50万套干洗需求。若每家店日均处理100套衣物,那么至…

AE (4)_ 直方图调整的理论

#灵感# 在短暂的高通平台调试中,很看重直方图调整的理解。后来其它平台,不怎么调整这个了。但还是记录一下。 我个人还是倾向 招式简单,但应用到极致。 绝大部分内容来自:刘斯宁,Image Enhancement - CLAHE - 知乎 (z…

图论算法(数学建模)算法以后更新

无权值,无向,当成1就行 有向 有向赋权 顶点度的概念 Dijkstra算法 Dijkstra算法能求-一个顶点到另一-顶点最短路径。它是由Di jkstra于1959年提出的。实际它能出始点到其它所有顶点的最短路径Dijkstra算法是一种标号法:给赋权图的每一一个顶点记一个数&a…

特斯拉难挽倒退?比亚迪为中国汽车市场改写历史

对于电动汽车这个新兴产业,特斯拉长期以来一直处于领头羊的位置,近年来也面临诸多测试。去年底欧洲报道特斯拉在瑞典遭遇罢工冲击,运营陷入诸多困扰,实在出人意料。更让人讶异的是,年终宣布新王者比亚迪在全球销量首次…

【前端设计】文字聚光灯

欢迎来到前端设计专栏&#xff0c;本专栏收藏了一些好看且实用的前端作品&#xff0c;使用简单的html、css语法打造创意有趣的作品&#xff0c;为网站加入更多高级创意的元素。 案例 文字聚光灯效果可以用于网站标题 html <!DOCTYPE html> <html lang"en&quo…