首页 > 其他分享 >Synchronized锁升级过程

Synchronized锁升级过程

时间:2023-03-13 21:55:18浏览次数:34  
标签:Synchronized JDK1.6 升级 当有 线程 过程 轻量级

Synchronized痛点

JDK1.6以前Synchronized锁是一个非常重的锁,虽然确实保证了并发的安全性,但是却也导致了性能的大幅降低;为了解决这个问题,JDK1.6开始出现了锁升级机制,根据具体应用场景对锁进行适当升级可以实现并发安全性和运行性能之间的一个平衡。

Synchoronized锁升级流程

无锁

  ——>偏向锁

        ——>轻量级锁

               ——>重量级锁

 

当Synchoronized没有被使用时是无锁状态;

当有一个线程进入Synchronized时升级为偏向锁;

当有一个线程获取偏向锁时有其他线程与其进行锁竞争则升级为轻量级锁;

当有一个线程获取轻量级锁时有其他线程与其进行锁竞争则膨胀为重量级锁,重量级锁就是JDK1.6以前的Synchronized锁;

标签:Synchronized,JDK1.6,升级,当有,线程,过程,轻量级
From: https://www.cnblogs.com/hx-web/p/17205150.html

相关文章

  • 今天给蛟龙16k升级了硬盘还有内存
    内存:英睿达DDR516g*2硬盘:金百达1T加起来快1100了真的是好贵这次一次到位了,整个机器花了7600元,和我去年买的MacBook一个价格,有那么意思好笑从去年我想换配主机......
  • 20230313>笔记本小升级PM991A
     新款的PM991a,有且仅有2230长度,大板子需自备转换器转成2241,2260,或者2280.  PM991a完全是小设备的福音的。以下是参数:本次产品容量512Gb, 产于2023年1月。 PM......
  • 亚马逊云使用ECS实例过程
    1注册 2申请linux实例并连接2.1选择地区打开控制台后,看到右上角可以选择创建实例所在的地区,根据自己的实际情况去选择。2.2添加安全组选择左侧目录网络与安全-......
  • python 程序 jenkins 打包的过程
     jenkins打包的过程1、如果有依赖文件,必须命名成requirements.txt放到site-packages文件夹下面,这样 jenkins才会把下载 requirements.txt里面的包,再打包成app......
  • 限时促销,火山引擎 ByteHouse 为企业带来一波数智升级福利!
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 面对庞杂的海量数据,稳定高速的实时数据处理能力,成为了当下企业数智升级过程中备......
  • Centos 7升级原python 2.7.5至Python 3.7
    1.安装编译环境包(防止出现安装错误)yuminstallgcc-c++gccmakecmakezlib-develbzip2-developenssl-develncurse-devel-y2.在线下载Python3.7源码包#进入tmp目......
  • Linux提权-权限升级
    Linux提权-权限升级 特权升级是一段旅程。没有灵丹妙药,很大程度上取决于目标系统的具体配置。内核版本、已安装的应用程序、支持的编程语言、其他用户的密码是影响您......
  • JUnit单元的配置和使用过程及总结提高
     单元测试不仅能帮我们验证代码逻辑,还可以通过执行时间进行快速筛选不合格代码并进行优化。核心模块的代码的单元测试覆盖率要达到100%,其他模块代码的单元测试覆盖率需要......
  • uniapp前端实现APP整包升级和APP资源热更新
    App整包升级和APP资源热更新uni-appApp整包升级检测: https://ask.dcloud.net.cn/article/34972uni-appApp资源热更新: https://ask.dcloud.net.cn/article/35667 A......
  • 倒序输出升级版
    数字反转(升级版)题目描述给定一个数,请将该数各个位上数字反转得到一个新数。这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数。整数反转是将所......