分享好友 最新动态首页 最新动态分类 切换频道
每日十题八股-2024年12月10日
2024-12-27 10:56

1.syncronized锁升级的过程讲一下
2.JVM对Synchornized的优化
3.介绍一下AQS
4.Threadlocal作用,原理,具体里面存的key value是啥,会有什么问题,如何解决?
5.悲观锁和乐观锁的区别
6.Java中想实现一个乐观锁,都有哪些方式
7.CAS 有什么缺点
8.为什么不能所有的锁都用CAS
9.voliatle关键字有什么作用
10.指令重排序的原理是什么

每日十题八股-2024年12月10日

只能升级不能降级。
可以看到在 Java 虚拟机中,对象分为三块区域,其中的对象头又包含 Mark Word(标记字段 和 Class Pointer(类型指针) 两部分(其中的数组长度是针对数组来说的)。

无锁,偏向锁,轻量级锁,重量级锁。
随着对锁的请求线程数的竞争激烈程度不断升级。
无锁:当无线程申请获取锁时,处于无锁状态。
偏向锁针对资源总被一个线程使用的情况:当有线程申请获取锁,锁类型被标记为偏向锁,并将当前线程ID记录在Mark Word。之后线程再次进入是,利用CAS比较记录id与线程id,如果相同直接进入资源,否则申请锁,修改Mark Word。
轻量级锁:轻量级锁是为了在线程近乎交替执行同步代码时提高性能。当线程 A 与 线程 B 同时抢占锁对象时,偏向锁会被撤销并将锁升级为轻量级锁。轻量级锁当一个线程A抢占了资源,B会不断循环重试,直至获取到锁。(有点复杂,将对象中的Mark word利用CAS写入线程的Lock Record里面,再将对象中的Mark word 指向Lock Record,这样才算获取到锁。
重量级锁:多个线程竞争时,升级为重量级锁,不再使用自旋,而是直接阻塞线程(线程会被操作系统调度然后挂起,这可以节约CPU资源。)。

锁膨胀(锁升级锁消除(JJVM 虚拟机如果检测不到某段代码被共享和竞争的可能性就会将这段代码所属的同步锁消除掉,从而到底提高程序性能的目的。锁粗化(将多个连续的加锁、解锁操作连接在一起,扩展成一个范围更大的锁。自适应自旋锁(自适应自旋锁通过监控锁的使用情况,动态地调整自旋的次数或者自旋的策略,以更好地适应当前程序的运行状况。)。

作用:ThreadLocal对象可以提供线程局部变量,每个线程Thread拥有一份自己的**副本变量,多个线程互不干扰。**在同一个线程里的一系列操作可以减少参数传递降低耦合度。
原理:每个线程都有自己的 ThreadLocalMap,这个映射表存储了线程的局部变量,其中键是 ThreadLocal 对象的弱引用,值为我们保存的值。

问题:内存泄漏。线程结束,ThreadLocalMap也随之销毁,但是ThreadLocal对象本身并没有立即被垃圾回收,直到没有其他引用指向它为止。因此,实际应用中需要在使用完ThreadLocal变量后调用remove()方法释放资源。

悲观锁就是认为线程之间的竞争总是在发生,因此,当线程尝试对某种资源进行操作时会直接上锁,直至操作完成才释放锁。
乐观锁则认为线程之间的竞争是极少发生的,因此,当线程尝试对于某种资源进行操作时并不上锁,而是将比较-替换这两个动作作为一个原子操作尝试去修改内存,如果失败则说明有其他线程已经修改过了,则遵循相应的机制进行重试。

CAS:利用比较-替换的原子操作,实现线程安全。
版本号控制:每当一个线程要修改数据时,都会先读取当前的版本号或时间戳,并将其保存下来。线程完成修改后,会再次读取当前的版本号或时间戳,如果发现已经变化,则说明有其他线程对数据进行了修改,此时需要回滚并重试。

ABA问题:加入版本号之类的。如Java中有AtomicStampedReference来解决这个问题。
自旋CAS的方式,长时间不成功会不断循环重试,会浪费大量的CPU资源。
只能保证一个共享变量的原子操作:多个可以通过AtomicReference来处理或者使用锁synchronized实现。

CAS是基于循环重试机制的。如果CAS操作未能成功,线程会一直自旋重试,占用CPU资源。当高并发的时候,会对CPU资源造成极大地浪费。

1.保证变量对所有线程的可见性。
2.通过内存屏障禁止指令重排。

最新文章
郑州企业营销新起点,搭建与优化推广全攻略指南
郑州搭建与优化推广全攻略,全方位解析企业营销策略。从建设到SEO优化,助您打造高效,抢占市场先机,开启企业营销新起点。郑州搭建郑州优化郑州推广在互联网高速发展的今天,已经成为了企业展示自我、拓展业务、增强品牌影响力的关键阵地
独立站营销攻略:高效选择 Google 搜索广告关键词的方法
搜索广告即是基于关键词的广告形式。每当消费者通过 Google 进行与卖家主营业务相关的产品或服务搜索时,卖家的广告就有机会出现在搜索结果之中。选择与业务高度相关的关键词不仅能帮助潜在客户快速找到他们感兴趣的商品,同时也能有效地传
阿里云|人工智能(AI)技术解决方案
函数计算部署Stable Diffusion AI绘画技术解决方案 通过函数计算快速部署Stable Diffusion模型为用户提供快速通过文字生成图片的能力。该方案通过函数计算快速搭建了AIGC的能力,无需管理服务器等基础设施,专注模型的能力即可
热剧售后综艺还有大搞头
犀牛娱乐原创文|方正 编辑|朴芳剧综,即剧集衍生综艺,本质上,它是一种长视频平台借势热剧流量开发售后内容的长尾产品。2024临近尾声,这个赛道正打得不可开交。前有优酷《剧剧有回应》首发《剧剧有回应·春花焰》、且10日又官宣了孙俪
数据分析常见概念
BI:Business Intelegence,商业智能,基于数据仓库,经过数据挖掘后,得到了商业价值的过程。例如利用数据预测用户购物行为属性商业智能DW:Data Warehouse,数据仓库,数据库的升级概念,一般量更庞大,将多个数据来源的数据进行汇总、整
同创智能锁全国售后维修电话(同创智能锁)总部故障报修 - 金昌机械 - 金昌百科知识-金昌蓝心网
同创智能锁24小时维修服务热线:400-658-8618。亳州智能锁全市各区售后服务点热线号码。☎:400-658-8618同创智能锁服务,秉承“诚信为本、客户至上”的服务态度和“以客户为中心”的服务指导思想,不仅真诚地为用户提供先进、高质量的系列
耐用性问题
科技媒体 sammyfans 昨日(12 月 16 日)发布博文,报道称部分三星 Galaxy S24 Ultra 手机的超强防反光涂层存在耐用性问题,未能达到预期效果。IT之家曾于今年 1 月报道,三星在宣传 Galaxy S24 Ultra 时主要提及了钛金属、AI 等诸多亮点,
除菌过滤器
[1]国产品牌滤芯均为我司生产的替代原厂品牌滤芯,其过滤滤材采用德国原装进口HV公司产品,注册商标为佳洁牌。本公司涉及的其它品牌均无品牌意义,只是作为产品型号参照和客户选型对照使用。进口滤芯和过滤器为原装进口,有防伪标志。我司
【国盛计算机】海外智能驾驶持续放大招
登录新浪财经APP 搜索【信披】查看更多考评等级  炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会!FSD v13已向部分用户发布,特斯拉端到端算法持续迭代。根据特斯拉自动驾驶工作人员Ashok Elluswamy的推特信息
造有道 智万物——德勤人工智能制造业应用调查
二、应用场景人工智能在制造业的应用场景众多,大致可以分为智能生产、产品和服务、企业运营管理、供应链以及业务模式决策五个领域。智能生产相关场景应用是目前制造企业部署人工智能的首要选择,其次为产品和服务相关场景。但未来两年,人
相关文章
推荐文章
发表评论
0评