1. 程式人生 > >Java多線程和並發(八),synchronized底層原理

Java多線程和並發(八),synchronized底層原理

圖片 同步 ont 目錄 public java多線 println 自旋 編譯

目錄

1.對象頭(Mark Word)

2.對象自帶的鎖(Monitor)

3.自旋鎖和自適應自旋鎖

4.偏向鎖

5.輕量級鎖

6.偏向鎖,輕量級鎖,重量級鎖聯系

八、synchronized底層原理

1.對象頭(Mark Word

技術分享圖片

2.對象自帶的鎖(Monitor

技術分享圖片

(1)javap反編譯查看原理同步代碼塊

public class SyncBlockAndMethod {
    public void syncsTask() {
        synchronized (this) {
            System.out.println("Hello");
        }
    }
}

技術分享圖片

(2)重入

技術分享圖片

(3)同步方法

public synchronized void syncTask() {
    System.out.println("Hello Again");
}

技術分享圖片

3.自旋鎖和自適應自旋鎖

技術分享圖片

4.偏向鎖

技術分享圖片

5.輕量級鎖

技術分享圖片

6.偏向鎖,輕量級鎖,重量級鎖聯系

技術分享圖片

Java多線程和並發(八),synchronized底層原理