В моем JAVA GUI я имею дело с состоянием гонки.
У меня есть некоторые методы, которые создают "анонимный метод" внутри анонимного класса следующим образом:
synchronized foo()
{
someMethod(new TimerTask()
{
public synchronized run()
{
//stuff
}
};
}
ВОПРОС: это метод запуска, синхронизированный с объектом TimerTask или классом, в котором находится foo?
QUESTION2: если бы я избавился от "синхронизированного" в объявлении run() и вместо этого имел синхронизированный (этот) {} блок внутри тела run(), "this" ссылался бы на объект TimerTask или на объект, являющийся экземпляром метода, который содержит foo()?
Пожалуйста, помогите мне здесь.
Спасибо, JBU