我正在努力确保我理解java中synchronized的性能影响.我有几个简单的类:
public class ClassOne {
private ClassTwo classTwo = new ClassTwo();
public synchronized void setClassTwo(int val1, int val2) {
classTwo.setVal(val1);
classTwo.setVal2(val2);
}
public static void main(String[] args) {
ClassOne classOne = new ClassOne();
classOne.setClassTwo(10, 100);
}
}
public class ClassTwo {
private int val;
private int val2;
public synchronized void setVal(int val) {
this.val = val;
}
public synchronized void setVal2(int val2) {
this.val2 = val2;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,正如您在前面的示例中所看到的,我正在同步ClassOne.setClassTwo和ClassTwo.setVal以及ClassTwo.setVal2.我想知道的是,如果我在ClassTwo.setVal和ClassTwo.setVal2上删除同步,性能是否完全相同,如下所示:
public class ClassTwo {
private int val;
private int val2;
public …Run Code Online (Sandbox Code Playgroud)