在java對象在堆內存中有:對象頭和對象數據和對齊偏移量組成
下面是無鎖 升級到輕量級鎖
當有新的線程嘗試獲取 偏向鎖失敗(即修改id),然後在等到上個線程執行到安全點(不是立刻去修改對象的頭部)
輕量級鎖的場景:適用於多個線程交替執行
重量級鎖:使用與高併發的項目,所以前面申請偏向鎖輕量級所等有點多餘,浪費時間,直接用重量級鎖即可
在java對象在堆內存中有:對象頭和對象數據和對齊偏移量組成
當有新的線程嘗試獲取 偏向鎖失敗(即修改id),然後在等到上個線程執行到安全點(不是立刻去修改對象的頭部)
輕量級鎖的場景:適用於多個線程交替執行
重量級鎖:使用與高併發的項目,所以前面申請偏向鎖輕量級所等有點多餘,浪費時間,直接用重量級鎖即可