目录
一、对synchronized的基本了解
二、深入了解synchronized背后原理
2.1锁升级/锁碰撞
2.2锁消除
2.3锁粗化
synchronized产生的效果实际上就是加锁,并且当两个线程对相同对象加锁的时候,就会出现锁竞争,拿到锁的线程就会对其进行加锁,没拿到锁的对象就会进行阻塞等待,直到拿到锁的线程释放锁;
如何理解锁升级,升级什么了?实际上就是synchronized的“自适应”——三个特性;
1.synchronized既可以是轻量级锁,也可以是重量级锁
若当前程序,锁竞争不激烈,那么synchronized就是以轻量级锁的状态来工作的,也就是纯用户态的“自旋”
京公网安备 11010502049817号