尝试获得锁, 进入同步代码块流程....;
_recursions: 锁的重入次数;
_count: 线程获取锁的次数;
在多线程执行时, 各部分对应功能如下图
1.如果monitor的所有者(_owner)为null, 则该线程进入monitor...轻量级锁
在偏向锁的基础上, 有其他线程竞争时, 会升级为轻量级锁. 轻量级锁一般采用自旋锁, 自旋锁又分为固定次数自旋锁和自适应自旋锁....当线程获取到锁时, 会将对象的markword信息复制到自己线程栈的锁记录空间(DisplacedMarkWord)中. 再次使用会用CAS的方式比较markword信息,判断锁的所有者....重量级锁
在轻量级锁基础上, 有其他线程以自旋的方式获取锁失败, 则升级为重量级锁, 也就会用到本文介绍的对象监视器(objectMonitor).