Java面试题 synchronized底层实现原理?它与lock相比有什么优缺点?
生活随笔
收集整理的這篇文章主要介紹了
Java面试题 synchronized底层实现原理?它与lock相比有什么优缺点?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先那些說看過synchronized源碼的基本都是大聰明,synchronized根本點不進去,想弄懂它的實現原理,我們只能通過看編譯好的字節碼文件
原理:
基于對象的監視器(ObjectMonitor),我們在字節碼文件里面可以看到,在同步方法執行前后,有兩個指令,方法前monitorenter,方法后monitorexit;?
與lock對比:
1、synchronized不需要手動釋放鎖,lock需要在鎖用完后進行unlock;
2、synchronized只能是默認的非公平鎖,lock可以指定使用公平鎖或者非公平鎖;
3、lock提供的Condition(條件)可以指定喚醒哪些線程,而synchronized只能隨機喚醒一個或者全部喚醒;
總結
以上是生活随笔為你收集整理的Java面试题 synchronized底层实现原理?它与lock相比有什么优缺点?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java面试题 简述jvm内存模型?
- 下一篇: Java的二十三种设计模式(单例模式、工