精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

面試官超級喜歡問的MarkWord

開發 后端
續上次被問到synchronized鎖后,面試官繼續刁難阿巴阿巴,進而深入到對象頭中相關的概念。

[[441998]]

前言

年底了,最近好幾天沒吃飯了,在微博吃瓜吃的飽飽的。

續上次被問到synchronized鎖后,面試官繼續刁難阿巴阿巴,進而深入到對象頭中相關的概念。

當場拿offer

面試官: 上次提到了synchronized鎖,那你知道synchronized鎖具體是怎么實現的嗎?

阿巴阿巴: 在JDK版本1.5及之前的版本synchronized主要靠的是Monitor對象來完成,同步代碼塊使用的是monitorenter和monitorexit指令,而synchronized修飾方法靠的是ACC_SYNCHRONIZED標識,這些都是進入到內核態進行加鎖的,然后將競爭鎖失敗的線程直接掛起,等待后面恢復。

阿巴阿巴: 在JDK1.6及之后的版本中,synchronized鎖得到了優化,引入了自適應自旋鎖、偏向鎖、輕量鎖,他們主要優化了鎖在一定條件下的性能。避免了一上來就加重量級鎖,等待鎖的其他線程只能乖乖掛起,對cpu性能影響特別大。

阿巴阿巴: 在hotspot虛擬機中,對象頭主要包括兩部分 MarkWord和Klass Pointer。

MarkWord 對象標記字段,默認存儲的是對象的HashCode,GC的分代年齡(2bit最大表示15)和鎖的標志信息等。對于32位的虛擬機MarkWord占32bit,對于64位的虛擬機MarkWord占用64字節。

Klass Pointer Class 對象的類型指針,它指向對象對應的Class對象的內存地址。大小占4字節(指針壓縮的情況下為4字節,未進行指針壓縮則占8字節)。32位虛擬機MarkWord分布

64位虛擬機MarkWord分布

圖片來源https://blog.csdn.net/weixin_40816843/article/details/120811181

查看虛擬機是多少位的可以使用:java -version

面試官: 我們怎么看對象頭里的MarkWord數據呢?

阿巴阿巴: 可以看到在openJDK中關于MarkWord的描述,首先可以在Github上找到Open Jdk的源碼

gitHub地址:https://github.com/openjdk/jdk

在IDE中打開并找到如下的位置

src/hotspot/share/oops/markWord.hpp

  1. // 查看虛擬機是多少位的可以使用:java -version   
  2. //  32 bits: 
  3. //  -------- 
  4. //            hash:25 ------------>| age:4  unused_gap:1  lock:2 (normal object) 
  5. // 
  6. //  64 bits: 
  7. //  -------- 
  8. //  unused:25 hash:31 -->| unused_gap:1  age:4  unused_gap:1  lock:2 (normal object) 

阿巴阿巴: 當然可以引入openjdk提供的jol-core,然后進行打印即可。

  1. // 在pom中引入 
  2. <dependency> 
  3.   <groupId>org.openjdk.jol</groupId> 
  4.   <artifactId>jol-core</artifactId> 
  5.   <version>0.10</version> 
  6. </dependency> 

然后編寫如下代碼

  1. public static void main(String[] args) { 
  2.      Test t = new Test(); 
  3.      System.out.println(ClassLayout.parseInstance(t).toPrintable()); 
  4.  } 

打印如下

markword在哪?Klass pointer在哪兒?

1處是MarkWord占用8Byte也就是64bit

2處是Klass Pointer占用了4Byte也就是32bit

klass pointer看起來是被壓縮了,怎么確定是被壓縮了呢?可以通過如下命令

面試官: 對于JDK1.6及以上版本,synchronized和MarkWord有啥關系嘛?

阿巴阿巴: 那關系可大了,可以看到在MarkWord中有2bit用來表示鎖的標志位,代表著經過優化的synchronized鎖不會直接上重量級鎖,而是由偏向鎖轉為輕量鎖,再由輕量鎖轉為重量級鎖,一步一步膨脹的過程。

下面是2bit的鎖標志位代表的含義

  1. //    [ptr             | 00]  locked      ptr points to real header on stack 
  2. //    [header          | 01]  unlocked    regular object header 
  3. //    [ptr             | 10]  monitor     inflated lock (header is wapped out
  4. //    [ptr             | 11]  marked      used to mark an object 
  5. //    [0 ............ 0| 00]  inflating   inflation in progress 
  6.  
  7. 001  無鎖狀態 (第一位代表偏向標志,為0的時候表示不偏向,為1的時候表示偏向) 
  8. 101  偏向鎖 且記錄線程ID 
  9. 00   輕量鎖 指向棧中鎖記錄的指針 
  10. 10   重量級鎖 重量級鎖的指針 
  11. 11   GC標志 

然后再找到上圖Value部分的數據,這兩位是鎖的標志位

面試官: 你剛不是說有一位是鎖的偏向標志嗎?在哪兒呢?

阿巴阿巴: 鎖的偏向標志就在鎖標志的前一位

阿巴阿巴: 程序啟動后4s就會加偏向鎖,只不過這個偏向鎖沒有偏向任何線程ID,也屬于無鎖狀態

阿巴阿巴: 當應用處于單線程環境中時,這時候上的是偏向鎖,在對象頭中偏向標示顯示為1,案例如下

  1. public static void main(String[] args) { 
  2.      Test t = new Test(); 
  3.      new Thread(()->{ 
  4.          synchronized (t) { 
  5.              System.out.println(ClassLayout.parseInstance(t).toPrintable()); 
  6.          } 
  7.      }).start(); 
  8.  } 

打印出來的數據如下

阿巴阿巴: 讓程序處于2個線程交替進行競爭鎖

  1. public static void main(String[] args) throws InterruptedException { 
  2.         Test t = new Test(); 
  3.         Thread thread = new Thread(()->{ 
  4.             synchronized (t) { 
  5.                 System.out.println(ClassLayout.parseInstance(t).toPrintable()); 
  6.             } 
  7.  
  8.         }); 
  9.         thread.start(); 
  10.         // 等待thread運行完 
  11.         thread.join(); 
  12.          
  13.         synchronized (t) { 
  14.             System.out.println(ClassLayout.parseInstance(t).toPrintable()); 
  15.         } 
  16.     } 

可以看到當main線程拿鎖時已經膨脹為輕量鎖了,鎖的2bit標志為變成00了

阿巴阿巴: 輕量鎖的時候,虛擬機會在當前線程的棧幀中建立一個鎖記錄的空間“Lock Record”,用于存儲鎖對象目前的MarkWord的拷貝,這一步采用CAS,如果成功了,那么與此同時,2bit的鎖標記位會從“01”轉變為“00”。這就是加輕量鎖的過程。

阿巴阿巴: 之所以引入偏向鎖,是為了解決在無多線程競爭環境下的輕量鎖,輕量鎖CAS多次的嘗試也是對性能的損耗。相對于輕量鎖而言,偏向鎖值只需要進行一次CAS,這次CAS是用來設置線程ID的,設置成功后就代表獲取鎖了。輕量鎖更適合于線程交替執行的場景,它們通過CAS自旋,避免了線程直接掛起以及掛起后的恢復過程,以此來降低CPU的損耗。

阿巴阿巴: 最后讓我們看看加上重量鎖后的MarkWord表現吧,先上代碼

  1. public static void main(String[] args) throws InterruptedException { 
  2.         Test t = new Test(); 
  3.         Thread thread = new Thread(()->{ 
  4.             synchronized (t) { 
  5.                 System.out.println(ClassLayout.parseInstance(t).toPrintable()); 
  6.             } 
  7.  
  8.         }); 
  9.         thread.start(); 
  10.         // 等待thread運行完 
  11.         // thread.join(); 去掉該代碼 
  12.  
  13.         synchronized (t) { 
  14.             System.out.println(ClassLayout.parseInstance(t).toPrintable()); 
  15.         } 
  16.     } 

控制臺打印如下,發現已經加上重量鎖了,鎖的2bit標志為變成10了。

阿巴阿巴: 當輕量級鎖升級成重量級鎖時,Mark Word的鎖標記位更新為10,Mark Word 將指向互斥量(重量級鎖)。

阿巴阿巴: 以上就是關于synchronized和MarkWord的關系啦。

面試官: 理解的不錯,明天來上班吧~

阿巴阿巴: 好的~

 

責任編輯:姜華 來源: 程序員巴士
相關推薦

2021-11-08 09:18:01

CAS面試場景

2021-12-16 18:38:13

面試Synchronize

2021-12-02 18:20:25

算法垃圾回收

2022-01-05 08:56:20

Vue修飾符面試

2024-03-25 11:03:38

Vue修飾符lazy

2018-05-10 15:48:47

面試面試官Java

2020-07-28 00:58:20

IP地址子網TCP

2025-06-03 07:05:00

Linux操作系統Windows

2021-01-06 05:36:25

拉鏈表數倉數據

2010-08-23 15:06:52

發問

2022-01-05 09:55:26

asynawait前端

2018-01-19 10:43:06

Java面試官volatile關鍵字

2021-04-21 09:28:17

字節面試官SetTimeout

2024-08-19 09:13:02

2024-06-04 07:38:10

2010-10-27 11:07:45

面試官

2021-02-03 15:30:10

面試垃圾回收器前端

2023-06-13 07:04:27

2025-03-10 03:00:00

CSSline字體

2015-08-13 10:29:12

面試面試官
點贊
收藏

51CTO技術棧公眾號

久久久久久久激情| 国产精品一区二区三区在线播放| 国产在线视频三区| 成人日韩欧美| 粉嫩绯色av一区二区在线观看| 欧美风情在线观看| 乱码一区二区三区| 欧美男男激情videos| 国产午夜精品美女毛片视频| 国产精品国产自产拍高清av水多| 五月婷婷婷婷婷| 97精品资源在线观看| 亚洲综合视频网| 鲁丝片一区二区三区| 久久机热这里只有精品| 美女午夜精品| 欧美视频日韩视频在线观看| 国产又爽又黄ai换脸| 国产 日韩 欧美 综合| 9国产精品视频| 色777狠狠综合秋免鲁丝| 亚洲av无码久久精品色欲| 免费h在线看| 国产精品久久影院| 国产一区二区精品免费| 国产精品xxxxxx| 韩日在线一区| 在线观看精品自拍私拍| 佐佐木明希电影| 日韩av超清在线观看| 一区二区不卡在线视频 午夜欧美不卡在 | youjizz.com日本| www 日韩| gogo大胆日本视频一区| 国产91色在线播放| 久久精品www| 色乱码一区二区三区网站| 精品乱码亚洲一区二区不卡| 国产精品视频黄色| 电影在线观看一区| 亚洲视频精选在线| 日韩三级电影免费观看| 农村少妇久久久久久久| 久草这里只有精品视频| 欧美中文字幕视频在线观看| 免费在线黄色片| 四季av一区二区凹凸精品| 日韩电影第一页| 黄大色黄女片18第一次| 蜜桃视频www网站在线观看| 日本一区二区成人| 久久99精品久久久水蜜桃| 国产高清视频免费| 精品一区二区免费视频| 国产精品一区电影| 亚洲国产成人精品女人久久| 国内精品久久久久国产盗摄免费观看完整版| 亚洲精品国产精品国产自| а 天堂 在线| 日韩毛片网站| 欧美三级视频在线观看| 国产精彩免费视频| 欧洲av不卡| 福利视频一区二区| 亚洲熟妇国产熟妇肥婆| 国产女人在线视频| 久久久久久久久伊人| 久久99精品久久久久子伦| 五月天婷婷在线观看| www.欧美日韩| 国内一区二区三区在线视频| 免费的黄色av| 成人h精品动漫一区二区三区| 99精彩视频在线观看免费| 国产精品久久久久久久久久久久久久久久| 日韩高清不卡一区| 国产精品美女呻吟| 伊人久久中文字幕| 三级影片在线观看欧美日韩一区二区 | 亚洲精品国产精品国自产| 欧美在线一卡| 国产蜜臀av在线一区二区三区| 国产综合欧美在线看| 亚洲欧美综合在线观看| 久久日韩精品一区二区五区| 日韩免费电影一区二区| 日韩精品成人av| 亚洲婷婷在线视频| 超碰在线免费观看97| 中文字幕中文字幕在线中高清免费版| 亚洲乱码国产乱码精品精可以看 | 亚洲精品国产精| 成人黄色a**站在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品久久无码一三区| 六月丁香婷婷色狠狠久久| 91精品视频一区| 懂色av蜜臀av粉嫩av分享吧| 99精品黄色片免费大全| 日韩欧美精品久久| 国产在线看片| 五月天丁香久久| 国产精品视频黄色| 亚洲午夜免费| 国产视频精品免费播放| 久久久久99精品成人| 成人精品影院| 欧美另类极品videosbest最新版本| 人妻久久一区二区| 国产农村妇女精品一二区| 国产精品久久久久久久久久久久久| 一级全黄裸体免费视频| 成人av在线网| 欧美日韩在线观看一区二区三区 | 91原创在线视频| 四虎影视永久免费在线观看一区二区三区 | 古装做爰无遮挡三级聊斋艳谭| 亚洲高清在线一区| 亚洲精品v天堂中文字幕 | 欧美日本三级| 亚洲欧美一区二区三区久久| 91香蕉视频在线播放| 在线亚洲欧美| 国产精品视频久久| 天堂中文资源在线观看| 国产精品久久久久久久免费软件 | 在线免费观看高清视频| 94色蜜桃网一区二区三区| 第九区2中文字幕| 免费一区二区三区四区| 精品亚洲一区二区| 国产一级在线播放| 国产成人午夜精品5599| 中文字幕日韩一区二区三区| 天然素人一区二区视频| 亚洲欧美第一页| 欧美日韩综合在线观看| 成人黄色综合网站| 婷婷无套内射影院| 9l视频自拍九色9l视频成人| 美女福利视频一区| 国产麻豆免费观看| 国产精品色呦呦| 在线观看国产一级片| 成人3d精品动漫精品一二三| 日韩美女福利视频| 激情综合闲人网| 色婷婷国产精品| 亚洲第一成人网站| 青青草国产成人av片免费| 日韩视频在线播放| 亚洲国产天堂| 欧美成人免费在线视频| 精品久久久无码中文字幕| 亚洲免费观看高清完整版在线观看熊| 美女在线视频一区二区| 91精品1区| 91麻豆国产精品| 天堂va在线| 精品国产91亚洲一区二区三区婷婷| 日韩欧美视频免费观看| 精品一区精品二区高清| 天天成人综合网| 久久9999免费视频| 亚州欧美日韩中文视频| 先锋av资源站| 欧美在线免费播放| 日本 欧美 国产| 国产精品一级二级三级| 一区中文字幕在线观看| 国产精品xxxav免费视频| 欧美一区二区三区免费视| 国产午夜在线观看| 91精品免费在线| 日日夜夜综合网| 国产精品色哟哟| 在线观看欧美一区二区| 国产视频亚洲| 亚洲一区二区精品在线| 97超碰成人| 国产成一区二区| 嫩草在线视频| 日韩av在线最新| 在线观看免费中文字幕| 一区二区三区精品久久久| 亚洲专区区免费| 国产一区二区按摩在线观看| 欧美一级片免费播放| 欧美色图国产精品| 国产专区欧美专区| 日韩电影毛片| 久久精彩免费视频| 色哟哟在线观看| 日韩一区二区在线看| 国产精品国产三级国产专区52| 国产精品无码永久免费888| aaa黄色大片| 蜜臂av日日欢夜夜爽一区| 成人污网站在线观看| 深爱激情综合网| 91精品国产高清久久久久久91裸体| xxx在线免费观看| 这里只有精品久久| 天天综合网在线| 日韩亚洲国产中文字幕欧美| 国产一级片av| 性欧美大战久久久久久久久| 亚洲 欧美 国产 另类| 94色蜜桃网一区二区三区| 亚洲五月激情网| 日本sm残虐另类| 国产h视频在线播放| 午夜精品毛片| 日日夜夜精品网站| 日韩大尺度在线观看| 亚洲综合精品伊人久久| 日本精品另类| 日韩免费在线看| 国产传媒av在线| 欧美老女人在线视频| 日本中文字幕电影在线免费观看 | 欧美亚男人的天堂| 久久久国产高清| 亚洲制服欧美中文字幕中文字幕| 337人体粉嫩噜噜噜| 91啪亚洲精品| 大尺度在线观看| 国产乱淫av一区二区三区| 自拍偷拍一区二区三区四区| 天堂久久一区二区三区| 欧美国产激情视频| 妖精视频成人观看www| 日韩精品综合在线| 最新精品国产| 激情五月五月婷婷| 亚洲大全视频| 波多野结衣三级在线| 日韩精品永久网址| 视频在线99| 日韩成人精品一区| 亚洲高清资源综合久久精品| 九热爱视频精品视频| 久久国产主播精品| 老司机精品在线| 国模精品娜娜一二三区| 欧美黄色录像| 欧美日韩高清免费| 国产一区二区三区四区五区传媒| 久久涩涩网站| 国产亚洲一区二区三区啪| 欧洲亚洲一区二区| 成人国产精品一级毛片视频| 亚洲巨乳在线观看| 国产精品精品国产一区二区| 在线视频欧美一区| 91精品久久久久久久久久不卡| 中文字幕中文字幕在线中一区高清 | 久久综合电影| 一区二区视频国产| 亚洲综合专区| 成人精品视频在线播放| 亚洲精选国产| 那种视频在线观看| 日本不卡123| 青娱乐精品在线| 99视频精品全部免费在线| 亚洲国产无码精品| 国产精品萝li| 男女免费视频网站| 日韩欧美在线免费观看| 特级西西444www大胆免费看| 欧美精品xxxxbbbb| 国产 日韩 欧美 精品| 精品一区二区三区三区| 在线观看美女网站大全免费| 久热精品视频在线| 精精国产xxx在线视频app| 国产成人一区二区三区小说 | 欧美午夜精品| 国产日韩一区二区在线| 久久精品av麻豆的观看方式| 四虎国产精品免费| 久久久99精品免费观看| www日韩在线| 日韩欧美在线免费| av天堂一区二区三区| 精品一区二区电影| 97caopor国产在线视频| 日本高清+成人网在线观看| 日韩三级一区| 久久久久久亚洲精品不卡4k岛国| 色狮一区二区三区四区视频| 男人插女人视频在线观看| 蜜臀精品久久久久久蜜臀| 少妇伦子伦精品无吗| 中文字幕不卡一区| 自拍偷拍欧美亚洲| 制服.丝袜.亚洲.中文.综合| 亚洲色偷精品一区二区三区| 精品国产一区av| 日本免费久久| 国产日韩三区| 亚洲天天综合| 91激情视频在线| 99精品视频在线观看| 日韩三级在线观看视频| 在线免费不卡视频| 亚洲 国产 欧美 日韩| 另类少妇人与禽zozz0性伦| 美女100%一区| 国产一区二区免费电影| 伊人久久大香线蕉综合四虎小说| 午夜精品久久久内射近拍高清| 国产成人精品免费网站| 91导航在线观看| 色综合久久天天综合网| 天天干,夜夜爽| 欧美尺度大的性做爰视频| 国外成人福利视频| 欧美日本亚洲| 国产免费成人| 草草地址线路①屁屁影院成人| 亚洲一区视频在线观看视频| 一本色道久久综合无码人妻| 亚洲一区二区久久久| 超碰高清在线| 精品欧美一区二区精品久久| 欧美福利在线| 精品国产午夜福利在线观看| 国产精品成人在线观看| 中文无码精品一区二区三区| 亚洲欧美日韩高清| 超碰aⅴ人人做人人爽欧美| 黑人中文字幕一区二区三区| 亚洲小说欧美另类社区| 午夜福利三级理论电影| 一区二区三区精品视频| 成人h动漫精品一区二区无码| 久久成人免费视频| 精品久久国产一区| 国产一级黄色录像片| 国产精品一二三四五| 美女毛片在线观看| 日韩免费高清av| 免费影视亚洲| 国产精品久久亚洲7777| 亚洲激情综合| 亚洲制服丝袜在线播放| 懂色aⅴ精品一区二区三区蜜月| 少妇人妻偷人精品一区二区| 性视频1819p久久| 国产成人三级| 中文字幕在线综合| 日韩美女精品在线| 国产黄色高清视频| 97av在线视频免费播放| 偷拍亚洲精品| 好男人www社区| 国产精品电影一区二区三区| 国产又粗又猛又爽又黄91| 欧美成人精品在线观看| www.豆豆成人网.com| 无罩大乳的熟妇正在播放| 久久久蜜桃精品| 亚洲图片中文字幕| 欧美另类精品xxxx孕妇| 欧美色图婷婷| 8x8x最新地址| 亚洲激情综合网| 天堂资源最新在线| 国产免费久久av| 欧美激情在线| 亚洲国产欧美视频| 欧美美女视频在线观看| 欧美人与性动交α欧美精品图片| 精品乱码一区二区三区| 日韩电影在线免费| 免费网站看av| 亚洲网在线观看| 日韩三级av高清片| 国产精品亚洲αv天堂无码| 亚洲日本在线视频观看| 天天操天天操天天| 国产精品综合不卡av| 激情91久久| 亚洲一级片在线播放| 日韩欧美国产午夜精品| 欧美xxx网站| 成人黄色片免费| 久久精品一区八戒影视| wwwxxxx国产| 日韩女优人人人人射在线视频| 91精品国产自产在线观看永久∴| 中文乱码人妻一区二区三区视频| 精品视频资源站| 蜜桃av.网站在线观看| 日韩精品一区二区三区电影| 久久久久99精品国产片| 风流少妇一区二区三区91| 国产精品久久久久久久久久新婚 |