静的同期メソッドとインスタンス同期メソッドが異なるスレッドで同じクラスの静的フィールドにアクセスしようとしている次のプログラムの動作はどうなりますか? ブロックされるスレッドはありますか? 非常に紛らわしいです。
class MyClass
{
public static int i = 5;
public synchronized void m1()
{
System.out.println(i); //uses static field i of MyClass
//T1 is executing this method
}
public static synchronized void m3()
{
//T2 will be able to call this method on same object lock while it is using
//static field i???
System.out.println(i);//uses static field i of MyClass
}
}