synchronized底层原理

73 阅读1分钟

synchronized的同步机制在JVM层面依赖Monitor监视器锁实现。

  • 偏向锁和轻量级锁阶段:直接通过对象头中的Mark Word进行CAS操作和锁记录指针交换,无需调用操作系统。

  • 重量级锁阶段:JVM创建C++的ObjectMonitor对象,然后通过操作系统的Mutex和条件变量实现

    因此,synchronized的底层实现是分层的:低竞争时使用偏向锁/轻量级锁(用户态操作),高竞争时退化为重量级锁(依赖操作系统Mutex)。