synchronized基於JVM規範的工作原理(一)

1. synchronized同步方法

synchronized同步方法的字節碼還原

  • java聲明的方法在jvm中的結構格式method_info
method_info {
       u2             access_flags;
       u2             name_index;
       u2             descriptor_index;
       u2             attributes_count;
       attribute_info attributes[attributes_count];
}
  • 其中關注method_info的access_flags取值
    • ACC_SYNCHRONIZED,對應標示值爲0x0020,作用是聲明爲同步方法,在jvm內部包裝一個監視器鎖被調用
    • ACC_PUBLIC,對應標示值爲0x0001,作用聲明方法爲public,運行被包外的類公開訪問
  • 帶synchronized的部分java代碼
// Account.java
public synchronized void setBalance(double
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章