對(duì)象的內(nèi)存布局
對(duì)象的內(nèi)存布局
Mark Word
32位JVM的Mark Word
64位JVM的Mark Word
Synchronized鎖膨脹過程
鎖膨脹過程
輕量級(jí)鎖膨脹流程
重量級(jí)鎖膨脹流程
鎖膨脹過程
Synchronized加鎖的幾種方式
// 鎖對(duì)象為對(duì)象A
public class A {
private int i;
public synchronized void increase(){
i++;
}
}
// 鎖對(duì)象為對(duì)象A
public class A {
private int i;
public void increase(){
synchronized (this) {
i++;
}
}
}
// 鎖對(duì)象為對(duì)象obj
public class A {
private int i;
private Object obj = new Object();
public void increase(){
synchronized (obj) {
i++;
}
}
}
// 鎖對(duì)象為A.class
public class A {
private int i;
public synchronized static void increase(){
i++;
}
}
// 鎖對(duì)象為A.class
public class A {
private int i;
public void increase(){
synchronized (A.class) {
i++;
}
}
}
QQ截圖20210227014451.png