为什么任何对象都可以实现锁
生活随笔
收集整理的這篇文章主要介紹了
为什么任何对象都可以实现锁
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 首先,Java中的每個對象都派生自Object類,而每個Java Object在JVM內部都有一個native的C++對象?oop/oopDesc進行對應。
2. 線程在獲取鎖的時候,實際上就是獲得一個監視器對象(monitor) ,monitor可以認為是一個同步對象,所有的Java對象是天生攜帶monitor。在hotspot源碼的?markOop.hpp文件中,可以看到下面這段代碼。?
多個線程訪問同步代碼塊時,相當于去爭搶對象監視器修改對象中的鎖標識,上面的代碼中ObjectMonitor這個對象和線程爭搶鎖的邏輯有密切的關系?
?
總結
以上是生活随笔為你收集整理的为什么任何对象都可以实现锁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 探究Jvm源码实现-MarkWord
- 下一篇: synchronized锁的升级