Synchronized与锁升级"/>
Synchronized与锁升级
一:java对象内存布局
对象在堆内存的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data) 和对齐填充
二:对象在堆内存中的存储布局
三:Sychronized的锁升级
Synchronized用的锁是存在Java对象头里的MarkWord中,锁升级功能主要依赖MarkWord中锁标志位和释放偏向锁标志位
偏向锁:MarkWord存储的是偏向的线程ID
轻量锁:MarkWord存储的是指向线程栈中Lock Record的指针
重量锁:MarkWord存储的是指向堆中的monitor对象(系统互斥量指针)
更多推荐
Synchronized与锁升级
发布评论