volatile实现细节
字节码层面
加上 ACC_VOLATILE 标记
JVM层面
在volatile内存区读写都加屏障
StoreStoreBarrier
volatile写操作
StoreLoadBarrier
LoadLoadBarrier
volatile读操作
LoadStoreBarrier
OS和硬件层面
windows lock指令实现
参考 hsdis - HostSpot Dis Assembler
synchronized实现细节
字节码层面
加上ACC_SYNCHRONIZED标志
monitorenter monitorexit monitorexit
两个exit保证异常也能退出
JVM层面
C C++调用了操作系统提供的同步机制
OS和硬件层面
windows lock指令实现