从oracle官网下载的这个HotSpot虚拟机的概况文档,现在翻一下锁的部分;

Java 锁

*每一个java对象都是一个潜在的monitor(监视器)

>synchronized 关键字

*所有现代JVM虚拟机都包含light-weight锁

  >避免关联一个系统互斥信号量或者每个对象的条件变量(heavy-weight lock)

  >当没有竞争时,使用原子变量进入或者退出monitor

  >当有竞争时,退回到heavy-weight的OS锁

*高效,因为大多数锁都是没有竞争的

Light-weight Locking (轻-重锁)

*每一个对象的第一个字节是 mark word
*用来做同步和GC
>同样的如果之前计算过,就缓存hashcode
*markWord的低位2个字节用来存储同步状态
>01 => unlocked
>00 => light-weight locked
>10 => heavy-weight locked
>11 => marked for GC
Light-weight Locking (轻-重锁)
*当对象被锁定时,mark word 被拷贝到线程栈的建造中的lock record 
>又叫做,移位mark
*使用原子操作CAS引导尝试使mark word 指向lock record
*如果CAS成功,线程获得锁
*如果CAS失败,竞争:锁膨胀(制造heavy-weight 重锁)
参考文章:
http://www.cnblogs.com/redcreen/archive/2011/03/29/1998800.html
http://blog.csdn.net/xiaomin1991222/article/details/50981423

转载于:https://www.cnblogs.com/aquariusm/p/6110771.html

HotSpotOverview.pdf相关推荐

  1. 网易云课堂微专业--Java高级开发工程师

    获取方式:公众号:文若课堂 ​ 5.微专业-java |    |──大纲.jpg          910.32KB |    |──阶段1:高性能编程专题 |    |    |──1.1.1 J ...

  2. Java内存管理与垃圾回收

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 整个教程中已经不时的出现一些内存管理和垃圾回收的相关知识.这里进行一个小小的总结. ...

  3. Java的垃圾回收机制

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 整个教程中已经不时的出现一些内存管理和垃圾回收的相关知识.这里进行一个小小的总结. ...

  4. php批量导出pdf文件大小,php完美导出pdf,pdf合并批量导出

    使用到的工具 pdftk      https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/      pdf合并工具 wkhtmltopdf      ...

  5. html 实现动态在线预览word、excel、pdf等文件

    word+excle+pdf表格在线浏览 通过iframe直接引用微软提供的方法 <iframe src='https://view.officeapps.live.com/op/view.as ...

  6. 如何将模糊的扫描版pdf转为清晰的pdf或word_pdf问题小结

    20220109 pdf拆分 不要点提取页面为单独文件 这样会提取出完整的一个文件 而如果选了的话会全部拆分成一页一页 20220107 # code=utf-8 import os import t ...

  7. snagit屏幕截图转pdf

    滚动截取无限的屏幕形成pdf.点击 capture 然后画出要截取的屏幕范围 如果一次截取的数据多 要等个几分钟 编辑器才会出现 然后通过save as 保存为pdf 而且保存也要等很久 还是一次少截 ...

  8. Java使用itext生成Pdf

    Java使用itext生成Pdf 背景 所需依赖 解决jpedal-lgpl jar包问题 示例代码 生成带图片的PDF(使用本地文件系统图片) 生成带图片的PDF(使用网络图片) 背景 在某些业务场 ...

  9. (八)pdf的构成之文件体(page属性)

    资源(Resources) 类型:字典 属性: Font :一个字典,内部是该资源包含的各个字体的名称(字体名称F开头) ProcSet :该资源中使用图画还是文字,可选 /PDF /Text /Im ...

最新文章

  1. 【坑爹升级】更新NVIDIA GeForce GTX Ti最新驱动,突然屏幕亮瞎我24K钛合金双眼。导致Fn+F2/F3、win+x无法控制笔记本电脑显示器亮度调整, 电源选项屏幕亮度也不见了!
  2. 带你认识清华标杆课教师 | 卓晴:自带BGM的硬核“技术流”教师
  3. 天天讲路由,那 Linux 路由到底咋实现的!?
  4. ue 抗锯齿 渲染序列失灵_最大的锯齿形序列
  5. Java 中 List 分片的 5 种方法!
  6. 关于我的博客的一些说明
  7. Linux篇 | 用户、组和权限(一)
  8. python形式参数和实际参数_python学习笔记3:函数和参数
  9. One Switch for Mac(系统功能快速切换工具)
  10. geexbox 编译
  11. Rhino学习教程——1.1
  12. 显卡煲机测试软件,不用再煲机!这款耳机可自动调音给你提供定制化音频
  13. 关于使用FileZilla软件出现中文乱码解决方法
  14. 2020CVPR对抗样本相关论文整理(无开源代码)
  15. Hibernate 框架检索策略
  16. R语言(6)-数据结构之矩阵(matrices)与数组(array)
  17. 3Idiots-2014-Kaggle 比赛源码走读
  18. 十分钟搞定时间复杂度(算法的时间复杂度)
  19. 计算机u盘设备无法启动不了,系统提示“该设备无法启动(代码:10)”,USB设备不能开始工作怎么办?...
  20. 【论文导读】- Subgraph Federated Learning with Missing Neighbor Generation(FedSage、FedSage+)

热门文章

  1. YARN的job提交过程
  2. 2017年3月14日上午日志
  3. [转]通过脚本添加登陆/注销/开机/关机脚本
  4. FlushMode属性与transaction(spring注入的事务)
  5. 一体广告机实现思路,非常实用(二)
  6. 18种方法让你集中精力工作
  7. C# DataGridView控件用法
  8. linux snmp更改端口号,snmpd服务无法更改默认端口
  9. c语言提取颜色,C语言颜色转换宏
  10. 终端连接mysql是出现error 2003_远程连接MySQL报错ERROR 2003解决办法