Closed Berries-Wang closed 2 years ago
不是的,偏向锁、重量级锁都会有这个。对于偏向锁来说,进行偏向撤销的时候,这个Lock Record可以用来帮助虚拟机,判断偏向线程是否还在同步代码块中执行。因为Lock Record的obj指针在执行到monitorenter指令进行加锁时会指向偏向锁对象,而在偏向线程执行到monitorexit指令离开同步代码块时,就会断开obj指针。 并且在锁膨胀的时候,也需要用到Lock Record,因为轻量级锁表示锁重入的方式,就是通过一个个Displaced Mark Word为NULL的Lock Record来展现的。
hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp: