<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      java對象頭與synchronized鎖的升級過程

      java對象頭中都存了些什么?

      32位jdk中:

      鎖狀態 25bit 4bit 1bit 2bit
      23bit 2bit   偏向鎖標志位(biased_lock) 鎖狀態(lock)
      正常對象(normal object) 對象hashcode(hash) 對象分代年齡(age) 0 01
      偏向鎖(biased object) 線程ID Epoch 對象分代年齡(age) 1 01
      輕量級鎖 指向棧中鎖記錄指針 00
      重量級鎖 指向互斥量(重量級鎖)的指針 10
      GC標記 11

      64位jdk中:

      鎖狀態 25位 31位 1位 4位 1位 2位
      29位 2位     偏向鎖標志位(biased_lock) 鎖狀態(lock
      正常對象(normal object) 未使用 對象hashcode(hash) 未使用 對象分代年齡(age) 0 01
      偏向鎖(biased object) 線程ID Epoch 未使用 對象分代年齡(age) 1 01

      在javaSE1.6中,為了減少上下文切換帶來的性能消耗,jdk引入了偏向鎖與輕量鎖

      synchronized鎖保證線程安全時鎖的升級過程:

      偏向鎖:由于重量級鎖在每次釋放與獲取鎖時進行上下文切換對性能消耗大,而多數鎖的獲取與釋放常常在同一個線程中進行,針對該現象引入了偏向鎖進行優化;當一個線程訪問同步代碼塊并獲取鎖時,會在對象頭和棧幀中的所記錄里存儲偏向鎖的線程ID,以后該線程在進入和退出同步代碼塊時,不用進行CAS操作來加鎖解鎖,只需要測試對象頭的Mark World中是否存儲著指向當前線程的偏向鎖,如果測試成功,表示該線程已經獲取到鎖進行執行,如果測試失敗,則需要再次測試Mark world中偏向鎖標識位是否為1(表示位偏向鎖),如果沒有設置,則開始使用輕量級鎖(CAS)進行競爭鎖,如果是,則嘗試使用CAS將對象頭的偏向鎖指向當前線程

      偏向鎖撤銷:當有另一個線程進行競爭(競爭出現)這把鎖時,才會撤銷偏向鎖,撤銷的過程要等到全局安全點(在這個時間點上沒有代碼正在執行)才會進行,撤銷前要西安暫停擁有偏向鎖的線程,再檢查該線程是否存活,如果不存活,則將對象頭設位無所,否則擁有偏向鎖的棧會被執行,遍歷偏向對象的鎖記錄,棧中所記錄和對象頭的mark world要么偏向于其他線程,要么恢復到無鎖或者標記對象不適合作為偏向鎖,最后喚醒暫停的線程

      偏向鎖會在程序啟動幾秒后激活:可以通過-XX:BiasedLockingStartupDelay=0來消除這個延時

      如果線程中的鎖通常處于競爭狀態,可以通過-XX:-UseBiasedKocking=false來關閉偏向鎖

      輕量級鎖:

        加鎖:線程執行同步代碼塊前,jvm再當前線程的棧幀中創建用于存儲所記錄的空間,并將對象頭中的mark word復制到所記錄中,官方稱為displaced mark word。然后線程嘗試使用CAS將對象頭的mark word替換為指向鎖記錄的指針。如果成功當前線程獲取鎖,否則其他線程獲得鎖,當前線程CAS等待

        解鎖:輕量級鎖解鎖時,會使用原子的CAS操作將Displaced mark word替換回對象頭,如果成功,則表示沒有競爭,如果失敗,則表示該鎖當前存在競爭,鎖會升級為重量級鎖

       

       

       重量級鎖:為了避免無用的自旋,一當鎖升級為重量級鎖,就不會恢復到輕量級鎖,當鎖為重量級鎖的狀態下,其他線程試圖獲取鎖時,都將處于阻塞狀態,當持有鎖的線程釋放鎖時,會喚醒其他線程,進行新一輪鎖的競爭

       

      posted @ 2021-06-29 00:09  七月流星丶  閱讀(175)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲一区在线观看青青蜜臀| 男人添女人下部高潮视频| 夜夜躁狠狠躁日日躁| 精品人妻少妇嫩草av专区| 久久国产免费观看精品3| ww污污污网站在线看com| 无码人妻精品一区二区三区蜜桃| 亚洲春色在线视频| 亚洲欧美偷国产日韩| 四虎影院176| 国产人妻精品一区二区三区不卡| 亚洲中文字幕无码一久久区| 久久人爽人人爽人人片av| 92国产精品午夜福利免费| 双乳奶水饱满少妇呻吟免费看| 免费A级毛片樱桃视频| 国产一区二区不卡91| 91中文字幕一区在线| 亚洲av成人一区二区三区| 久久精品蜜芽亚洲国产AV| 国产精品亚洲一区二区z| 精品欧美一区二区三区久久久| 国产mv在线天堂mv免费观看| 少妇激情av一区二区三区| jizzjizz日本高潮喷水| 亚洲a∨国产av综合av| 久久精品一偷一偷国产| 国产精品老熟女露脸视频| 亚洲区欧美区综合区自拍区| 人妻丰满熟妇AV无码区乱| 亚洲一二区在线视频播放| 久久精品中文字幕少妇| 国产精品白浆无码流出| 亚洲国产精品ⅴa在线观看| 成人一区二区三区久久精品| 久久久久香蕉国产线看观看伊| 亚洲一区成人在线视频| 国产成人免费午夜在线观看| 97国产揄拍国产精品人妻| 亚洲男女羞羞无遮挡久久丫| 无码人妻av免费一区二区三区|