HotSpotOverview.pdf
Posted aquariusm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HotSpotOverview.pdf相关的知识,希望对你有一定的参考价值。
从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
以上是关于HotSpotOverview.pdf的主要内容,如果未能解决你的问题,请参考以下文章