Java的偏向锁是什么?

提问者:帅平 问题分类:面试刷题
Java的偏向锁是什么?
1 个回答
激萌美少女
激萌美少女
当虚拟机启动了偏向锁时,当一个锁对象被线程第一次获取时,锁对象中的标志位会被标记为“01”,即锁对象处于偏向模式。然后使用 CAS 将获取锁对象的线程 ID 记录在锁对象的 Mark Word 中,如果 CAS 操作成功,那么持有锁对象的线程在以后每次进入同步块时都不需要锁定和解锁。
当有另一个线程获取锁对象时,偏向模式就结束了。如果此时锁对象已经解锁,则锁对象恢复到未锁定状态(标志位为“01”);如果此时锁对象处于锁定状态,则锁对象将升级为轻量级锁。
发布于:1个月前 (02-08) IP属地:四川省
我来回答