synchronized内部工作原理

在这里插入图片描述

作者简介: zoro-1,目前大二,正在学习Java,数据结构,javaee等
作者主页: zoro-1的主页
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

synchronized内部工作原理

  • synchronized的锁策略
  • synchronized加锁过程(锁升级)(这个升级过程是不可逆的)
  • 锁消除
  • 锁粗化

synchronized的锁策略

乐观锁悲观锁自适应
轻量级锁重量级锁自适应
自旋锁挂起等待锁自适应
不是读写锁
非公平锁
可重入锁

synchronized加锁过程(锁升级)(这个升级过程是不可逆的)

  1. 偏向锁阶段

核心思想就是能不加锁就不加锁,相当于当只有一个线程和这个锁时候,就搞暧昧不加锁,但只要有另外一个线程竞争这个锁,就会在那个线程加上锁之前加上锁(并升级到2阶段),但如果没人竞争就不会加锁

2.轻量级锁阶段

假设现在竞争不多,就会采取自旋锁方式实现,但当现在锁竞争激烈时就会采取锁升级到3阶段

3.重量级锁阶段

这时的锁竞争比较激烈,拿不到锁的线程会挂起等待,让出cpu

锁消除

jvm会在程序不需要锁时自动消除锁(但这个是保守的)

锁粗化

在这里插入图片描述

当一个线程粗度比较细时就会把上述加锁解锁过程粗化(如下图)

在这里插入图片描述

                           今天的分享到这里就结束了,感谢大家支持

在这里插入图片描述

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

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

相关文章

矿泉水市场调研:预计2029年将达到83亿美元

矿泉水为国民饮水消费升级的方向,估算我国矿泉水市场规模约472亿元,成长性好。我们按照水种将包装水划分为矿泉水、纯净水、天然水及其他,根据多个第三方数据来源数据,我们估算矿泉水2017年瓶装与桶装合计市场销售规模约472亿元&a…

深入理解指针(3)

⽬录 1. 字符指针变量 2. 数组指针变量 3. ⼆维数组传参的本质 4. 函数指针变量 5. 函数指针数组 6. 转移表 1. 字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 char* ; ⼀般使⽤: int main() {char ch w;char *pc &ch;*pc w;return 0; } 还有…

属性“xxxx”在类型“ArrayConstructor”上不存在。是否需要更改目标库? 请尝试将 “lib” 编译器选项更改为“es2015”或更高版本。

使用vscode编写vue,在使用elementUI时,发现代码中的form报错如下: 属性“form”在类型“ArrayConstructor”上不存在。是否需要更改目标库? 请尝试将 “lib” 编译器选项更改为“es2015”或更高版本。 解决方法: 打开jsconfig.…

TOP100-二叉数

1.94. 二叉树的中序遍历 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示例 3: 输入&#xf…

第8章 多线程

8.1 线程概述 人们在日常生活中,很多事情都是可以同时进行的。例如,一个人可以一边听音乐,一边打扫房间,可以一边吃饭,一边看电视。在使用计算机时,很多任务也是可以同时进行的。例如,可以一边…

对多面体数据进行裁剪和加盖的功能

开发环境: Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example demo解决问题:对多面体数据进行裁剪和加盖的功能。 关键点: 创建了一个平面,并将其定位在输入多面体数据的中心位置&#xff…

详解洛谷P1352 没有上司的舞会(树形DP经典例题)

题目 没有上司的舞会 - 洛谷 思路 这是一道非常裸的树形DP,对于初学树形DP的OIer来说,是一道十分良心的题 我们可以设: dp[x][0]表示以x为根的子树,且x不参加舞会的最大快乐值 dp[x][1]表示以x为根的子树,且x参加了舞会的最大快乐值 则有 …

爬虫工作量由小到大的思维转变---<第四十四章 Scrapyd 用gerapy管理多台机器爬虫>

前言: 之前讲过关于如何在gerapy中部署本地爬虫, 爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapydGerapy>_gerapy如何登录-CSDN博客 爬虫工作量由小到大的思维转变---<第三十五章 Scrapy 的scrapydGerapy 部署爬虫项目&…

SpringBoot:配置相关知识点

SpringBoot:多环境配置 配置知识点demo:点击查看LearnSpringBoot02 点击查看更多的SpringBoot教程 一、SpringBootApplication SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用,运行这个类的main方法来…

睿尔曼超轻量仿人机械臂-- RM65-B手眼标定使用说明

一、前言 机器人的视觉系统分为固定场景视觉系统和运动的「手-眼」视觉系统。相机与机器人手臂末端,构成手眼视觉系统。根据相机在机器人安装位置的不同,手眼视觉系统分为Eye-in-Hand系统(眼在手上)和Eye-to-Hand系统&#xff08…

Javascript | 打印菱形

Javascript打印菱形&#xff0c;在校大学生可以拿来糊弄作业&#xff08;笑&#xff09; var str ; for (var i 1; i < 9; i) {if (i < 5) {for (var k1 1; k1 < 5 - i; k1) {str ;}} else {for (var k2 1; k2 < i - 5; k2) {str ;}}if (i < 5) {for (…

Curl 使用指南(进阶版)

使用Curl可以轻松GET资源、发送POST请求、定制HTTP头。高级技巧如代理、Cookie、证书 一、Curl 的基本用法 curl [options] [URL]options &#xff1a;指定 Curl 的行为的选项 URL &#xff1a;要访问的资源的地址 支持一下&#xff1a; Python Gui图形化开发 MySQL使用教程 …

开源软件:推动技术创新的引擎

目录 前言1 低成本、可协作性和透明度的特点1.1 社区化开发模式的催生1.2 成本效益的体现1.3 透明度的增强 2 开放协议的关键作用2.1 保障知识产权的开源协议2.2 灵活性与自由的MIT协议2.3 广泛应用的Apache协议 3 安全风险的审慎考虑3.1 潜在的恶意代码威胁3.2 定期安全审查的…

C++中RTTI实现原理

目录 1.引言 2.typeid 2.1.虚函数表&#xff08;vtable&#xff09; 2.2.类型信息&#xff08;type_info&#xff09; 3.dynamic_cast 4.缺陷 5.一些库/软件提供的RTTI实现 5.1. CATIA的RTTI 5.2. QT的RTTI 5.3. FreeCAD的RTTI 6.实例 7.总结 1.引言 RTTI是Runtime…

信任与创新 | 回顾通付盾的2023!

-END- 数信云&#xff0c;基于区块链与人工智能的数据安全应用与服务平台

【Spring】Spring 启示录

一、OCP 开闭原则 核⼼&#xff1a;在扩展系统功能时不需要修改原先写好的代码&#xff0c;就是符合OCP原则的&#xff0c;反之修改了原先写好的代码&#xff0c;则违背了OCP原则的 若在扩展系统功能时修改原先稳定运⾏程序&#xff0c;原先的所有程序都需要进⾏重新测试&…

N-143基于springboot博客系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 前端技术&#xff1a;AdminLTEHTML 服务端技术&#xff1a;springbootmybatis-plusthymeleaf 本项目分前台和后台&#xff0c;主要有普…

FM波的调制与解调

一、实验原理 1.FM的调制 产生调频信号有两种方法&#xff0c;直接调频法和间接调频法。间接调频法就是可以通过调相间接实现调频的方法。但电路较复杂&#xff0c;频移小&#xff0c;且寄生调幅较大&#xff0c;通常需多次倍频使频移增加。对调频器的基本要求是调频频移大&am…

大数据Doris(六十三):基于Doris的有道精品课数据中台建设实践

文章目录 基于Doris的有道精品课数据中台建设实践 一、背景

【Java程序设计】【C00245】基于Springboot的家政服务管理平台(有论文)

基于Springboot的家政服务管理平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的家政服务管理平台 本系统分为前台模块、管理员功能模块、用户功能模块以及服务人员功能模块。 前台模块&#xff1a;系统首页的…