1、轻量级锁
锁撤销升级为轻量级锁之后,那么对象的Markword也会进行相应的的变化。
下面先简单描述下锁撤销之后,升级为轻量级锁的过程:
a) 线程在自己的栈桢中创建锁记录 LockRecord。
b) 将锁对象的对象头中的MarkWord复制到线程的刚刚创建的锁记录中。
c) 将锁记录中的Owner指针指向锁对象。
d) 将锁对象的对象头的MarkWord替换为指向锁记录的指针。
2、锁消除
由于偏向锁失效了,那么接下来就得把该锁撤销,锁撤销的开销花费还是挺大的,其大概的过程如下: