JAVAのGUIで競合状態に対処していると思います。Javaの匿名クラスと同期と "this"
私はこのような匿名クラス内の「匿名メソッド」を作成、いくつかの方法があります:
synchronized foo()
{
someMethod(new TimerTask()
{
public synchronized run()
{
//stuff
}
};
}
はQUESTION:そのrunメソッドがTimerTaskをオブジェクトまたはクラス上で同期さfooがであることを?
質問:run()宣言で "synchronized"を取り除き、run()本体の中にsynchronized(this){}ブロックがある場合、 "this"はTimerTaskオブジェクトを参照するか、 foo()を含むメソッドのインスタンスであるオブジェクトに?
ここから手伝ってください。
おかげで、 JBU
これは、Java Concurrency In Practice(JCiP)の本にも表示される間違いです。それは、Javaが同期に関して非常に弱く型付けされているという同情です。 –