synchronized的实现原理

synchronized 依赖JVM内部的Monitor对象来实现线程同步。使用的时候不用手动lock和unlock,JVM会自动加锁和解锁。

synchronized加锁代码块时

JVM通过 monitorenter、monitorexit两个指令来实现同步

  • 前者表示线程正在尝试获取lock对象的monitor
  • 后者表示线程执行完了同步代码块,正在释放锁

synchronized修饰普通方法时

JVM会通过ACC_SYNCHRONIZED标记符来实现同步。

posted @ 2025-05-13 13:21  kuki'  阅读(10)  评论(0)    收藏  举报