我知道同步方法和同步块之间的区别,但我不确定同步块部分。
假设我有这个代码
class Test {
private int x=0;
private Object lockObject = new Object();
public void incBlock() {
synchronized(lockObject) {
x++;
}
System.out.println("x="+x);
}
public void incThis() { // same as synchronized method
synchronized(this) {
x++;
}
System.out.println("x="+x);
}
}
在这种情况下,使用lockObject和使用this作为锁有什么区别?对我来说似乎是一样的。。
当您决定使用同步块时,您如何决定哪个对象成为锁?