锁升级: JDK1.6之前 重量级锁:用户态->内核态 (消耗太多性能) JDK1.6之后更改 无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁 当第一个线程第一次访问时 将线程ID放入对象头当多个线程一起竞争 自旋竞争失败进入阻塞队列 等待线程唤醒