synchronize關鍵字的鎖升級

在java對象在堆內存中有:對象頭和對象數據和對齊偏移量組成

下面是無鎖 升級到輕量級鎖

當有新的線程嘗試獲取 偏向鎖失敗(即修改id),然後在等到上個線程執行到安全點(不是立刻去修改對象的頭部)

輕量級鎖的場景:適用於多個線程交替執行

重量級鎖:使用與高併發的項目,所以前面申請偏向鎖輕量級所等有點多餘,浪費時間,直接用重量級鎖即可

下面是無鎖升級爲重量級鎖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章