理论知识

看了一篇博客(https://blog.csdn.net/weixin_45007916/article/details/107535746),其中有以下的图片:
偏向锁未启动时,markword的最后3个bit是001
匿名偏向时,markword的最后3个bit是101
jdk8默认的偏向锁启动延迟是4s(BiasedLockingStartupDelay=4000)

PS C:\Java_Study\wsc_shell> java -XX:+PrintFlagsFinal -version|findstr /i bias
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)intx BiasedLockingBulkRebiasThreshold          = 20                                  {product}intx BiasedLockingBulkRevokeThreshold          = 40                                  {product}intx BiasedLockingDecayTime                    = 25000                               {product}intx BiasedLockingStartupDelay                 = 4000                                {product}bool TraceBiasedLocking                        = false                               {product}bool UseBiasedLocking                          = true                                {product}bool UseOptoBiasInlining                       = true                                {C2 product}


实验环境

windows10 x64
C:\Program Files\Java\jdk1.8.0_221\bin\java.exe

偏向锁未启动

对象头的最后1个byte是00000001,最后3个bit是001,

匿名偏向

延迟4100ms让偏向锁启动之后,再打印对象obj的信息内存结构信息
对象头的最后1个byte是00000101,最后3个bit是101,但是对象头中并未看到指向当前线程的指针

偏向锁中当前线程指针不为空

此时的偏向锁指向当前线程的数据(对象头低54个bit)为,00000000 00000000 00000000 00000000 00000011 01010110 011010
Epoch为00
hex(int(‘000000000000000000000000000000000000001101010110011010’, 2))
0xd59a
0xd59a这个和当前线程怎么联系起来?

计算对象的hashcode会使得偏向锁失效-匿名偏向到无锁

对象头的最后1个byte是00111000,最后3个bit是001,
从对象头的第26个bit开始的31bit是hashcode值,即
0011110 11110111 11111110 10001110

计算 int(‘0011110111101111111111010001110’, 2)
519569038
和输出的obj.hashCode()一致

计算对象的hashcode会使得偏向锁失效-升级为轻量级锁

对象头的最后1个byte是01011000,最后3个bit是000,
对象头的前62个bit是00000011 00110000 11110110 010110
hex(int(‘000000110011000011110110010110’, 2))
‘0xcc3d96’
0xcc3d96和当前线程栈中的Lock Record怎么联系起来?

做实验验证JDK8偏向锁:未启动、匿名偏向、偏向锁失效相关推荐

  1. linux内核自旋锁解释,LINUX内核笔记:自旋锁

    目录 1.自旋锁作用与基本使用方法? 与其他锁一样,自旋锁也用于保护临界区,但是自旋锁主要是用于在SMP上保护临界区.在SMP上,自旋锁最多只能被一个可执行线程持有,如果一个线程尝试获得一个被争用的自 ...

  2. 我有一个顶会idea还没做实验,NeurIPS:先占坑再实验!

    作者 | 青 暮 相信大家对费马大定理都不陌生,x^n +y^n=z^n.一个简单无比的方程式却是难到几百年后才被数学家解决.而这其中最令人着迷的,当属费马当年在手稿留下的一句话:我这里有一个绝妙的证 ...

  3. 解决Windows 7 系统,Group Policy Client 服务未启动,不能登录的问题。

    今天中午,一美女同事非常小心的来找我请教问题,说她不能登录计算机了.我去看了一下,发现输入密码后,身份验证通过,然后提示:"Group Policy Client 服务未启动",然 ...

  4. 史上最全实验室安全说明书,别再用生命做实验!

    史上最全实验室安全说明书,别再用生命做实验! 实验室区域行为规范 1.不得在实验室饮食.储存食品.饮料等个人生活物品:不得做与实验.研究无关的事情. 2.整个实验室区域禁止吸烟(包括室内.走廊.电梯间 ...

  5. sem史上最全实验室安全说明书,别再用生命做实验!

    史上最全实验室安全说明书,别再用生命做实验! 实验室区域行为规范 1.不得在实验室饮食.储存食品.饮料等个人生活物品:不得做与实验.研究无关的事情. 2.整个实验室区域禁止吸烟(包括室内.走廊.电梯间 ...

  6. Java并发——Synchronized关键字和锁升级,详细分析偏向锁和轻量级锁的升级

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/tongdanping/article/ ...

  7. 华为-IGP协议-ospf精简篇(带实验验证)

    文章目录 前言 动态路由协议可分为以下两种: 一.内部网关协议 1.RIP(Routing Information Protocol):路由信息协议. 2.IGRP(Interior Gateway ...

  8. 计算机网络实验 —— 验证性实验

    计算机网络实验 -- 验证性实验 1. ipconfig 1.1. 实作一 1.2. 实作二 1.3. 问题 2. ping 2.1. 实作一 2.2. 实作二 2.3. TroubleShootin ...

  9. 用计算机做科学实验心得体会,做实验的心得体会3篇

    生物学是一门以做实验为基础的自然科学,现代生物科学的发展尤其依赖科学实验.下面是学习啦带来的做实验心得体会,欢迎欣赏. 做实验的心得体会一: 实验教学是电工课教学的重要组成部分,电工知识的讲授离不开实 ...

最新文章

  1. 人生赢家的三个最基本标准
  2. html的下拉框的几个基本使用方法
  3. 5G时代到来,SD-WAN如何发展?-Vecloud微云
  4. linux系统如何拨号上网连接,教你在Linux下如何使用ADSL拨号上网
  5. 一维装箱问题 java_c语言来实现贪心算法之装箱问题
  6. Synchronized 锁升级机制
  7. hive 正则表达式详解
  8. 计算机导论的答案,计算机导论答案
  9. 《烈烈先秦》9、世界奇迹的缔造者——全才冤臣蒙恬
  10. 计算机网络 路由协议的配置_瑞尔森大学计算机网络专业
  11. 搭建BeagleBoard-x15+linux4.9+ubuntu16.04
  12. 安全等保测评_等保二级和三级的区别
  13. windows7 热键查看_创建快捷方式或热键以在Windows 7或Vista中打开任务管理器的“所有用户”视图...
  14. 时间最优轨迹规划(3-5-3次多项式)
  15. 极简自然语言处理技术发展史
  16. C++语言——求圆柱表面积
  17. HRM- Fusion体验报告
  18. Bugku MISC 粉色的猫
  19. 熊猫直播 开启html5,熊猫直播助手使用小葫芦插件教程
  20. Linux防火墙iptables添加白名单

热门文章

  1. 项目实战总结以及接入U-APM
  2. freeipa 客户端 Kerberos认证 SSSD关系
  3. mysql8安装成功后忘记密码,密码重置
  4. Java 获取当前服务器公网IP
  5. scheme唤醒app-抖音
  6. excel 分组排序,取前5
  7. 罗切斯特大学计算机科学硕士介绍,罗切斯特大学计算机科学硕士排名第61(2020年TFE Times排名)...
  8. 高德h5定位误差_#高德地图api移动端定位失败解决方案 #H5 原生Geollocation接口Chomre浏览器的坑...
  9. 福昕PDF不可编辑解决方法
  10. 谈谈我的技术专家之路