Java中synchronized锁升级过程是什么样的

news2025/2/11 14:20:52

参考文章一
参考文章二
参考文章三

在Java中,对象锁的状态是为了减少同步操作的开销而设计的,主要包括无锁、偏向锁、轻量级锁和重量级锁几个级别。锁的状态会随着竞争情况的不同而升级,但是不会降级。以下是锁状态的一般升级过程:

在这里插入图片描述

  1. 无锁状态

    • 当对象被创建时,它处于无锁状态。
  2. 偏向锁

    • 当偏向锁功能启用且第一次有线程尝试获取锁时,对象头部的Mark Word会被标记为偏向该线程,这时候对象进入偏向锁状态。
    • 如果偏向锁未启用,对象仍然保持无锁状态直到第一个线程锁定它。
  3. 轻量级锁

    • 如果对象处于偏向锁状态,当有另一个线程尝试获取锁时,如果持有偏向锁的线程正在运行,它会暂时撤销偏向锁并升级为轻量级锁。
    • 轻量级锁通过在对象的Mark Word中存储一个指向锁记录(Lock Record)的指针来实现。
    • 如果有线程尝试获取锁,但锁已经被其他线程以轻量级锁形式持有,则尝试获取锁的线程会进行自旋,希望锁可以快速被释放。
  4. 重量级锁

    • 当自旋的次数超过了预设的限制还没有获取到锁,或者轻量级锁的竞争非常激烈时,轻量级锁会升级为重量级锁。
    • 重量级锁会使得其他尝试获取锁的线程进入阻塞状态,直到锁被释放。
  5. 锁撤销

    • 当一个线程持有偏向锁,并且检测到有其他线程尝试获取锁时,JVM会暂停持有偏向锁的线程,撤销偏向锁,并根据锁的竞争情况将锁升级为轻量级锁或重量级锁。

锁的升级过程是单向的,意味着一旦锁被升级,它就不会降级。例如,一旦一个轻量级锁升级为重量级锁,即使后来竞争减少,它也不会降级回轻量级锁或偏向锁。这是因为锁降级会引入额外的复杂性,并且在大多数情况下,一旦出现了激烈的锁竞争,它通常会持续存在。

在JVM中,锁的这些状态转换都是为了在不同的竞争情况下提供更好的性能。偏向锁和轻量级锁主要是为了减少无竞争或者低度竞争下的同步开销,而重量级锁则是为了在高度竞争的环境中保证线程安全。

锁升级细化流程

在这里插入图片描述

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

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

相关文章

ISP 状态机轮转和bubble恢复机制学习笔记

1 ISP的中断类型 ISP中断类型 SOF: 一帧图像数据开始传输 EOF: 一帧图像数据传输完成 REG_UPDATE: ISP寄存器更新完成(每个reg group都有独立的这个中断) EPOCH: ISP某一行结尾(默认20)就会产生此中断 BUFFER DONE: 一帧图像数据ISP完全写到DDR了 2 ISP驱动状态机 通过camer…

Java第二十一章课堂总结

计算机应用实现了多台计算机间的互联,使得它们彼此之间能够进行数据交流。网络应用程序就是在已连接的不同计算机上运行的程序,这些程序借助于网络协议,相互之间可以交换数据。编写网络应用程序前,首先必须明确所要使用的网络协议…

(10)Linux冯诺依曼结构操作系统的再次理解

💭 前言:本章我们首先会明确冯诺依曼体系结构的概念,旨在帮助大家理解体系结构在硬件角度去理解数据流走向的问题。理解完之后我们再去谈操作系统、更多有关操作系统的细节,着重谈谈操作系统概念与定位、操作系统是如何去做管理的…

ref组合式api声明状态

一、ref声明响应式状态(支持所有类型),因为内部维护一个refImpl对象{value:***},,如下图: ref声明的数字、字符、布尔、对象、数组类型的值都存在refImpl 对象的value属性里面 所以,如果要改变ref 声明的变…

阿里云经济型e实例2核2G3M99元1年,性价比超高的入门级云服务器

产品简介 经济型e实例是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器,采用Intel Xeon Platinum架构处理器,支持1:1、1:2、1:4多种处理器内存配比,采用非绑定CPU…

STM32实战之深入理解I²C通信协议

目录 IC的物理层 IC的协议层 IC特点 IC 总线时序图 软件模拟IC时序分享 例程简介 例程分享 STM32的IC外设 IIC(Inter-Integrated Circuit),也称为IC或TWI(Two-Wire Interface),是一种广泛使用的串行…

《图解HTTP》第1章 了解Web及网络基础

《图解HTTP》第1章 了解Web及网络基础 1. 使用 HTTP 协议访问 Web1.1 网络基础 TCP/IP1.2 TCP/IP 协议族1.2.1 TCP/IP 的分层管理 1. 使用 HTTP 协议访问 Web Web 使用一种名为 HTTP(HyperText Transfer Protocol,超文本传输协议) 的协议作为…

弱电工程中发包、承包、分包、转包、内包、挂靠一次搞清楚

前言 工程建设中的发包、承包、分包、转包、内包、挂靠是实务中一个非常普遍的工程现象和常见的法律问题。对这几个问题的正确理解和把握是正确处理工程实务的基础。但由于每个工程项目的实际情况不同、实务操作中的形式各异,这几者的关系不好把握,容易…

AI 绘画StableDiffusionWebui图生图

介绍 stable-diffusion-webui AI绘画工具,本文介绍图生图,以一张图片做底图优化生成。 例如:上传一张真人照片,让AI把他改绘成动漫人物;上传画作线稿,让AI自动上色;上传一张黑白照&#xff0c…

k8s初学

1.k8s是什么? kubernetes:8个字母省略,就是k8s 自动部署,自动扩展和管理容器化部署的应用程序的一个开源系统。 k8s是负责自动化运维管理多个容器化程序的集群,是一个功能强大的容器编排工具。 2.docker微服务,可以…

CSRF(Pikachu)

CSRF(get) 首先我们先登录账号 admin 密码是;123456 点击修改个人信息 用F12或者BP 抓包看看我们的url 那么构成的CSRF攻击payload为http://pikachu.shifa23.com/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sexboy&phonenum”手机…

【大厂面试】之 美团(一面经含答案)

美团 一面 tcp三次握手,四次挥手。time-wait、close-wait状态。MSL代表什么?为什么time-wait是2MSL,可不可以更长?如果不设置time-wait有什么影响 time-wait是主动关闭方的一个状态;close-wait是被动关闭方的一个状态…

中庸 原文与译文

《中庸》是中国古代论述人生修养境界的一部道德哲学专著,是儒家经典著作之一,原属《礼记》第三十一篇,相传为战国时期子思所作。 其内容肯定“中庸”是道德行为的最高标准,认为“至诚”则达到人生的最高境界,并提出“…

代码随想录第四十一天(一刷C语言)|打家劫舍打家劫舍II打家劫舍III

创作目的:为了方便自己后续复习重点,以及养成写博客的习惯。 一、打家劫舍 思路:参考carl文档 1、确定dp数组以及下标的含义:下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。 2、确定递…

财务数据智能化:用AI工具高效制作财务分析PPT报告

Step1: 文章内容提取 WPS AI 直接打开文件,在AI对话框里输入下面指令: 假设你是财务总监,公司考虑与茅台进行业务合作、投资或收购,请整合下面茅台2021年和2022年的财务报告信息。整理有关茅台财务状况和潜在投资回报的信息&…

连锁餐饮数字化:一体化运营管控平台

内容来自演讲:刘腾飞 | 上海奥谱创网络科技有限公司 | CEO 摘要 本文介绍了企业级管理系统的需求和现状,以及如何通过数据指标为依据的改善循环来优化企业的运营。文章还提出了场景驱动、迭代上线的方法,并介绍了两个平台、三个统一的解决方…

等级保护安全的管理机构与管理制度

目录 安全管理机构的控制点 岗位设置 人员配备 授权和审批 沟通和合作 审核和检查 安全管理制度的控制点 安全管理制度 指定和发布 评审和修订 安全管理机构的控制点 岗位设置 人员配备 授权和审批 沟通和合作 审核和检查 安全管理制度的控制点 安全管理制度 指定…

电子学会C/C++编程等级考试2022年06月(七级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:有多少种二叉树 输入n(1<n<13),求n个结点的二叉树有多少种形态 时间限制:1000 内存限制:65536输入 整数n输出 答案 样例输入 3样例输出 5 答案: //参考答案 #include<bits/stdc++.h> using namespace std; …

二叉树题目:分裂二叉树的最大乘积

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;分裂二叉树的最大乘积 出处&#xff1a;1339. 分裂二叉树的最大乘积 难度 6 级 题目描述 要求 给定二叉树的根结点 root \texttt{root} root&…

吉他初学者学习网站搭建系列(7)——如何在线制作乐谱(扒歌)

文章目录 背景实现查和弦&渲染和弦编辑谱子保存谱子 成果 背景 相信很多音乐爱好者们在听到一首好听的歌或者曲子时&#xff0c;都有动手扒谱的冲动&#xff0c;但是&#xff0c;你电脑里并没有安装一些专业的扒谱软件&#xff0c;这个时候&#xff0c;你更倾向于有一个网…