• 2024-08-03synchronized介绍
    synchronized原理:从JVM规范中可以看到Synchonized在JVM里的实现原理,JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同步是使用monitorenter和monitorexit指令实现的,而方法同步是使用另外一种方式实现的,通过编译之后,同步方法与普
  • 2024-07-19偏向锁
    publicclassTest{staticinti;publicvoidtest(){synchronized(this){i++;}}}0aload_01dup2astore_1//monitorenter指令在编译后会插入到同步代码块的开始位置3monitorenter4getstatic#2<threadtes
  • 2024-05-28synchronized原理
    对象头(markword,数组长度,类型指针)  实例数据(字段1,字段2) 对齐填充(对其字节)synchronized修饰方法多了一个ACC_SYNCHRONIZED标识符synchronized修饰代码块monitorenter和monitorexitObjectMonitor里_EntryList和_WaitSet1.线程在竞争synchronized锁的时候,jvm首