synchronized的底层实现

JDK早期的 重量级 - OS
后来的改进
锁升级的概念:
我就是厕所所长 (一 二)

sync (Object)
markword 记录这个线程ID (偏向锁)
如果线程争用:升级为 自旋锁
10次以后,
升级为重量级锁 - OS

执行时间短(加锁代码),线程数少,用自旋
执行时间长,线程数多,用系统锁

MESI

volatile 禁止指令重排序
_
longAdder 分段锁,然后在相加