简述Synchronized以及锁升级

article/2025/9/23 1:43:10
😊 @ 作者: 一恍过去
💖 @ 主页: https://blog.csdn.net/zhuocailing3390
🎊 @ 社区: Java技术栈交流
🎉 @ 主题: 简述Synchronized以及锁升级
⏱️ @ 创作时间: 2022年4月29日

在这里插入图片描述

目录

  • 1、Synchronized锁
  • 2、锁升级

1、Synchronized锁

​ 通过Synchronized实现同步机制,属于一种悲观锁,在操作数据时,判断该对象是否被锁定,如果被锁定则进入阻塞状态直到被占用的线程释放,如果没有被锁或者当前线程已存在操作对象的锁则进行上锁操作,操作完数据后进行释放操作。

​ 当一个类对象被锁时,被Synchronized修饰的方法将产生阻塞,非Synchronized修饰的方法不会产生阻塞。

​ Synchronized通过可重入性解决自己锁死自己的情况;因为他是通过判断对象没有锁或者当前线程拥有当前对象的锁来进行加锁,如果没有重入性一类中两个同步方法互相调用就会造成死锁。

​ Synchronized也是一种非公平锁,因为它不会按申请锁的时间来分配锁,而是通过竞争的形式来获取锁,这样提高了执行性能。

方法锁:synchronized修饰方法时,每个实例对象对应一把锁。

对象锁:synchronized修饰方法或代码块,每个实例对象对应一把锁。

类锁:synchronized修饰静态方法或者静态代码块,所有的实例对象共用同一把锁,我们称之为类锁。

在一个类中,同时存在类锁方法和对象锁方法。多线程访问两个方法的时候,线程会不会阻塞。

2、锁升级

从低到高分为:偏向锁、轻量级锁(自旋锁)、重量级锁,锁只能升级不能降级;

为什么需要进行锁升级: ** 在是一个线程多次获得同一个锁的情况下,如果每次都要竞争锁会增大很多没有必要的代价,为了降低CPU的开销,提供了执行效率。**

升级锁的实现,依赖于对象头中的Mark Word,里面会记录当前第一个获取锁的线程的ID,以及锁状态;

  • 偏向锁:当一个线程A抢到锁后,将线程A的ID记录到对象头中,并且锁升级为偏向锁(锁标志-01(无锁于偏向都是01),是否偏向为1);后续线程A再次获取该对象的锁时,发现对象处于偏向锁状态,对象头中的线程ID与线程A一致,此时会直接获取到偏向锁;
  • 轻量级锁:当另外一个线程B获取锁时,发现锁以及处于偏向状态,此时线程B会通过CAS的方式尝试性的争抢锁【修改对象头中的线程ID】(判断线程A是否存活,存活就不能进行修改),如果偏向锁抢锁失败,则偏向锁就升级为轻量级锁,如果抢锁成功则执行代码;
  • 重量级锁:轻量级锁是通过自旋的方式争抢锁,并且适用于线程持有锁的时间也不长的情况**(因为阻塞线程需要进行CPU状态,代价比较大,所以自旋)**;当线程的自旋次数超过阈值(默认是10)的时候为了防止cpu空转,会将自旋锁升级为重量级锁,并且将没有获取锁的线程进行阻塞;

轻量级锁修改线程ID的方式:

​ 偏向锁升级为轻量级锁之后,线程B将锁对象的markword拷贝到线程本身的markword空间中,然后通过cas的方式去设置锁对像中的线程ID值;

在这里插入图片描述


http://chatgpt.dhexx.cn/article/MHIV9CED.shtml

相关文章

chrome 浏览器升级后接口无法正常访问

问题:chrome 浏览器升级后接口无法正常访问(后端已经设置好相关跨域设置) 现象:接口请求不成功,如下图: 解决办法: 地址览输入chrome://flags ,找到 Block insecure private network request ,设置Default为 Disabled…

禅道升级踩坑

1、本公司的禅道8.2.1,我发现没有用例套件的功能,需要升级到9.0.1才行; 2、从网上下载一看已经到10.4,那就升级到这个版本吧; 3、服务器配置: roottemplet:/opt/zbox/app/zentao/config# uname -a Linux…

Tomact升级步骤

本文以apache-tomcat-6.0.18升级为apache-tomcat-7.0.85为例。 目录 一、准备Tomcat包 二、升级步骤 2.1、停服务 2.2、打包现有Tomcat目录下logs和webapps目录 2.3、备份现有Tomcat目录 2.4、上传Tomcat安装包至 $HOME 下并解压 2.5、修改环境变量及启动脚本参数 2.6…

网站升级https访问,webscoket升级wss问题

前段时间,网站访问由http变更为https,但是由于webscoket功能受到影响,报错如下: 跟前端沟通解决方式问题,前端回复说很麻烦,暂时不要做了。 今天突发奇想,我是不是可以在nginx中修改配置&#…

WF-2页面升级方法

准备工作 需要把相应的软件升级包拷贝到电脑任意路径下,如下图例子所示,将W30S_GAN_V2_update_conf.pac放到桌面目录WF-2目录中: 1.电脑连接路由器的lan口,打开浏览器在地址栏输入192.168.10.1,按Enter键即可进入路由…

Nginx升级1.20.1后访问出现403之解决

安全扫描提示Nginx出现安全漏洞。 一共8个漏洞涉及多个nginx版本。经过考虑决定升级到1.20.1. 下载安装包,使用tar解包。 在服务器端,执行nginx -V查看当前nginx使用了那些配置参数。 然后使用./configure 参数使用nginx -V查到的参数,但是…

jenkins升级后访问报错

1、先来看看报错截图吧 2、解决方法,下载role-strategy.hpi文件放到JENKINS_HOME/plugins文件夹下面 2.1、下载链接:https://updates.jenkins.io/latest/role-strategy.hpi 放到JENKINS_HOME/plugins后需要授权 chmod 755 role-strategy.hpi 3、重启jen…

域名升级访问中拿笔记好_域名选择与老域名质量评分,尽量少踩坑

关于"域名选择与老域名质量评分"与"适合seo服务器选择与服务器安全搭建"2小节课程,本来上周三,周五已经讲完了,但是这个回放课程一直被自己找各种理由往后托,笔记也没做!好吧,看啦灰牛在学习这块还是不够积极呀!然后午休的时候看了下"域名选择与老域名…

域名升级访问中拿笔记好_赶快看看你的电脑中是否被植入了这个软件

​近日,有技术爱好者反映其电脑主板 BIOS 中预置了一款由 Absolute 公司开发的防盗追踪软件 Computrace。电脑启动后,操作系统会隐蔽安装该软件,经常向境外传输不明数据。 该软件可以远程获取电脑中的用户文件,控制用户系统,监控用户行为,甚至可以在没有授权的情况下自动…

IT资产管理流程及规范

公众号回复:干货,领取价值58元/套IT管理体系文档 公众号回复:ITIL教材,领取最新ITIL4中文教材 更多专业文档请访问 www.itilzj.com 为了更好地维护和管理IT设备,充分利用所有IT设备资源,不断提高公司IT资产…

固定资产管理系统哪家好?固定资产管理平台有哪些?

根据先进的云呐固定资产管理系统,RFID物联网技术与互联网技术的深度融合,让RFID标识和智能产品系统自动收集记录资产在生命周期、价值变化、处理资产设备从采购到使用、盘点、损坏、变更等管理阶段,帮助企业从复杂的管理过程中解放。 解决固定…

企业固定资产管理是哪个部门管理的

固定资产管理是由哪个部门进行管理的?通常情况下,企业的固定资产是由财务部、行政部门、办公室、资产管理部门、设备部等等这些管理的。 首先,我们要了解固定资产管理是由哪个部门来处置,企业的固定资产应该有资产管理部门、财政部门、企业还…

固定资产管理系统软件

资产管理系统解决方案适合20人左右的政府部门、事业单位、部队、企业、大专院校、医院、中小学等资产管理部门使用。固定资产管理系统平台支持条码或rfid电子标签,请根据实际场景需要选择相匹配的数据采集器(手持终端)、标签打印机等。 资产管…

非标产品和标准产品的区别(关于3C)

近期因为关于3C认证问题,弄的焦头烂额,查询到一些资料记录一下 先看下《中华人民共和国标准化法》有关说明 第二条 本法所称标准(含标准样品),是指农业、工业、服务业以及社会事业等领域需要统一的技术要求。 标准包…

公司固定资产该哪个部门管理,一般公司固定资产怎么管理

固定资产是企业顺利工作的基础条件,特别是针对固定资产密集型企业,如果固定资产管理不好,将直接影响企业的经营成本。因此,一般大型企业会设立专门的固定资产管理部门,由固定资产管理员管理和盘点大量的固定资产。很多…

云呐|如何完善固定资产管理制度和程序

从长远来看,我们应当挑选确定的固定资产管理软件。唯有考虑到这些优势,我们才可以长期深入使用固定资产管理软件,这也是企业未来必不可少的固定资产管理软件。如今,随着市场竞争力的猛增,企业必须首先运用固定资产管理…

【云驻共创】非标装备制造企业如何破除交付困境

文章目录 前言一、制造业的生产关系1.OEM的概念2.EU的概念3.EPC/SI的概念 二、数字化的现状及趋势1.IT和OT2.数字化设备 三、非标装备企业的现状1.非标装备企业的现状-运营模式低效 四、非标装备企业的发展趋势五、携手华为云,打造装备数字化解决方案六、基于工艺编…

意想不到,企业资产管理如此简单

对大中型企业,固定资产具有数量大、种类多、价值高、使用周期长、使用地点分散等特点,管理难度大。一些传统固定资产管理软件,痛点丛生,已难于满足企业需求。 资产管理平台 资产管理平台以资产管理目标为引导,以资产数…

云呐|固定资产归哪个部门管理,归谁管理

正常情况下,固定资产管理属于行政部门管理,固定资产管理是行政部门中非常重要的一部分,说到使用部门管理有点不合理,使用部门使用或毁坏固定资产或向行政部门报告,使用部门只使用,管理应属于行政部门&#…

0.3 - 非标设备常用材料

低碳钢:钢材含碳量≤0.25%,由于含碳量低,因而强度低,硬度低,但塑性、韧性高,可锻性和焊接性好。一般丌采用热处理,用于制造中小机械零件和要求丌高的模具。如自动化设备常用的Q235(A3)钢及钢型材…