目录
轻量级锁
当多个线程开始竞争时,都试图使用CAS来获取这把锁,因为此时第一个获得该锁的线程ID已经被设置到了mark word中,而偏向锁不会自己释放,所以即使当前线程已经完成了工作,它的ID还是在mark word中. 这不是开玩笑吗? 其他线程一直在原地打转呢,它们不要面子啊! 所以只能通过升级为轻量级锁来协调这些线程.具体过程如下:
升级过程
TO DO
参考:
Eliminating Synchronization-Related Atomic Operations with Biased Locking and Bulk Rebiasing
Synchronization and Object Locking
Interpreters, compilers, and the Java Virtual Machine
Proceedings of the Java™ Virtual Machine Research and Technology Symposium (JVM '01)
Evaluating and improving biased locking in the HotSpot virtual machine