深入理解synchronized背后的原理

目录

一、对synchronized的基本了解

二、深入了解synchronized背后原理

2.1锁升级/锁碰撞

2.2锁消除

2.3锁粗化


一、对synchronized的基本了解

        synchronized产生的效果实际上就是加锁,并且当两个线程对相同对象加锁的时候,就会出现锁竞争,拿到锁的线程就会对其进行加锁,没拿到锁的对象就会进行阻塞等待,直到拿到锁的线程释放锁;


二、深入了解synchronized背后原理

2.1锁升级/锁碰撞

        如何理解锁升级,升级什么了?实际上就是synchronized的“自适应”——三个特性;

1.synchronized既可以是轻量级锁,也可以是重量级锁

        若当前程序,锁竞争不激烈,那么synchronized就是以轻量级锁的状态来工作的,也就是纯用户态的“自旋”,可以第一时间拿到锁;

     

你可能感兴趣的:(多线程,面试总结,java,jvm,synchronized)