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