java object monitor_Java精通并发-通过openjdk源码分析ObjectMonitor底层实现
生活随笔
收集整理的這篇文章主要介紹了
java object monitor_Java精通并发-通过openjdk源码分析ObjectMonitor底层实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在我們分析synchronized關鍵字底層信息時,其中談到了Monitor對象,它是由C++來實現的,那,到底它長啥樣呢?我們在編寫同步代碼時完全木有看到該對象的存在,所以這次打算真正來瞅一下它的真正面目,而對于這個Hospot代碼JDK是并沒有開源的,但是社區版本的JDK是開源了,在openjdk上可以閱讀得到,所以下面先到openjdk上瞅一下:
所以點擊一下它:
點擊一下:
然后點擊左側的browser方便我們瀏覽代碼:
然后定位到這個路徑:
然后點擊runtime/,
其中,我們要想看到Monitor對象的源代碼就在其中,如下:
其中.hpp是c++的頭文件,其具體的實現是以cpp中,接下來就得打開它們來看我們想了解的東東了,是不是很刺激?對于上一次理論中提到了兩個東東:
那咱們從源碼中來看一下具體都表現為啥,首先先來看一下ObjectMonitor.hpp:
接下來就可以看到ObjectMonitor的類聲明了:
其實對就對應于:
接下來挑里面的重點內容瞅一下:
接下來看一下它的成員變量:
那看一下_WaitSet的定義:
再看一下_EntryList的定義:
另外在上一個理論中提到了:
其實也在底層有定義,如下:
看一下它的定義:
另外上理論中還提到了它:
其實也有對應:
繼續來看其它的一個成員變量:
總結
以上是生活随笔為你收集整理的java object monitor_Java精通并发-通过openjdk源码分析ObjectMonitor底层实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win7如何创建系统还原(U盘重装系统W
- 下一篇: java什么内部类_Java的内部类学习