Javaでのオブジェクト ロックについて質問があります。元。コード:
public class A
{
private static A a = null; // singleton instance
private A()
{
}
public static synchronized A getInst()
{
if (a == null)
{
a = new A();
}
return a;
}
public synchronized void method1()
{
//some action
}
public synchronized void method2()
{
//some action
}
}
スレッド (たとえばthread-1 ) が内部で動作しているmethod1()
場合、thread-1はシングルトン オブジェクトのロックを取得します。しかし、別のスレッド (たとえば、thread-2 ) は、スレッド 1がロックを解放するのを待たずmethod2()
に、スレッドに入りたいと考えています。このロックは、スレッド 1とスレッド 2の両方でどのように共有されますか?
ありがとう