1.简介
这是jvm的多线程优化技术.
偏向锁,它会偏向于第一个访问该锁的线程. 如果在接下来的运行过程中,该锁没有被其他的线程访问,则持有偏向锁的线程将永远不需要触发同步。
如果在运行过程中,遇到了其他线程抢占该锁,则持有偏向锁的线程会被挂起,JVM会尝试消除它身上的偏向锁,将锁恢复到标准的轻量级锁。
2.消除偏向锁
如果一个锁只被单线程用到, 那么偏向锁的优化是有意义的. 如果自己确定自己的代码, 很多锁就是多线程用, 那可以禁用偏向锁这个优化, 从而提升代码性能.
在JDK 6以后,默认已经开启了偏向锁这个优化,通过JVM 参数 -XX:-UseBiasedLocking
来禁用偏向锁.