次のコードがあるとします。
class MyClass {
synchronized void myMethod1() {
//code
}
synchronized void myMethod2() {
//code
}
}
ここで、個別のデータmyMethod1()にアクセスするとします。myMethod2()ここで、スレッド A 呼び出しのみmyMethod1()とスレッド B 呼び出しのみの 2 つのスレッドがある場合myMethod2()。
スレッド A が実行中の場合、同じデータにアクセスしなくても、myMethod1()スレッド B は待機をブロックし、その理由はありませんか? myMethod2()私の知る限り、同期されたメソッドは、thisインスタンスメソッドにはオブジェクトのモニターを使用し、MyClass.class静的関数にはオブジェクトのモニターを使用します。