私はこのクラスを持っています:
public class MyClass {
public MyClass(){}
public void actionA(){
synchronized(MyClass.class){
System.out.print("A");
}
}
public void actionB(){
synchronized(MyClass.class){
actionA();
}
}
}
どれが(もしあれば)本当ですか?
- actionA()はMyClass.classに関連付けられたロックを取得できないため、actionB()を呼び出すとデッドロックが発生します。
- actionB()を呼び出しても、MyClass.classに関連付けられたロックがすでに取得されているため、デッドロックは発生しません。