我知道同步方法和同步块之间的区别,但我不确定同步块部分。
假设我有以下代码:
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 作为锁有什么区别?在我看来似乎是一样的。当你决定使用同步块时,如何决定哪个对象作为锁?
this
)。 - GantengX