synchronized的实现原理是什么?
考察说明
考察对Java内置锁机制的底层实现理解,包括锁升级、内存语义和底层指令
回答思路
- 能说明synchronized基于Monitor对象实现,每个对象关联一个monitor
- 描述锁升级过程:无锁→偏向锁→轻量级锁→重量级锁,以及各自的适用场景
- 解释偏向锁的获取和撤销机制,轻量级锁通过CAS自旋获取,重量级锁依赖操作系统的互斥量
- 能说明synchronized保证的内存可见性和原子性,涉及管程(Monitor)和内存屏障
- 能提及JVM优化如锁消除、锁粗化,以及JDK版本对偏向锁的调整(如JDK15默认禁用)