同期方式と同期ブロックの違いはわかりますが、同期ブロック部分についてはよくわかりません。
私がこのコードを持っていると仮定して
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を使用することとこれをロックとして使用することの違いは何ですか?それは私にも同じようです。
同期ブロックを使用する場合、どのオブジェクトをロックするかをどのように決定しますか?