我正在處理競爭條件,我相信,在我的JAVA GUI中。java匿名類和同步和「this」
我有一個創建一個匿名內部類這樣的「匿名方法」的一些方法:
synchronized foo()
{
someMethod(new TimerTask()
{
public synchronized run()
{
//stuff
}
};
}
問題:是對TimerTask的對象或類foo是在同步該運行方法?問題2:如果我在run()聲明中刪除了「synchronized」,並且在run()體內部有一個synchronized(this){}塊,則「this」會引用TimerTask對象,或者對象是包含foo()的方法的一個實例?
請幫我看看這裏。
感謝, JBU
這是一個錯誤,甚至出現在Java併發實踐(JCiP)書中。很遺憾,Java在同步方面很弱。 – 2009-04-30 23:12:28