加锁:
1.同步实例方法,锁是当前实例对象
2.同步类方法,锁的是当前类对象
3.同步代码块,锁是括号里面的对象
原理:
JVM内置锁通过synchronized使用,通过内部对象Monitor(监视器锁)实现,基于进入与退出Monitor对象实现方法与代码块同步,监视器锁的实现依赖底层操作系统的Mutex Lock(互斥锁)实现,它是一个重量级锁性能较低
锁升级过程: