私はJavaのスレッドが初めてなので、この疑問があります。「同期された非静的メソッドブロック」では、1つのスレッドのみがブロックに入ることができると読みました(もちろん、非静的ブロックの1つのインスタンスに対して)。しかし、うまくいかないようです。何か不足していますか?次のコードを見てください。
class A extends Thread
{
public void run()
{
B.b.add();
}
}
class B
{
static B b=new B();
int i;
public synchronized void add()
{
i++;
}
}
public class Sample
{
public static void main(String[] args)
{
for(int i=0;i<10;i++)
{
new A().start();
}
System.out.println(B.b.i);
}
}