Какой смысл во внутреннем блоке synchronized? Если я верно понял документацию по java, то все вызовы synchronized методов защищены от одновременного вхождения для каждого объекта, т.е. следующие 2 метода по в моем понимании эквивалентны
public synchronized void method1() {
}
public void method2() {
synchronized (this) {
}
}
и в этом случае дополнительный блок не нужен. Я прав или просто еще чего-то не знаю?
Здравствуйте, Cadet, Вы писали:
C>Доброго времени суток, коллеги.
C>Осваиваю андроид, ну и параллельно с этим сам язык java — он для меня в новинку. Копаясь в примерах, несколько раз натыкался на конструкцию: C>
Таким образом можно делать группы синхронизаций. Как-нибудь так:
public synchronized void method1(***) {
synchronized (mSurfaceHolder) {
}
}
public synchronized void method2(***) {
}
public void method3(***) {
synchronized (mSurfaceHolder) {
}
}
method1 не может выполняться одновременно с двумя другими, а второй и третий одновременно могут.
C>Какой смысл во внутреннем блоке synchronized? Если я верно понял документацию по java, то все вызовы synchronized методов защищены от одновременного вхождения для каждого объекта, т.е. следующие 2 метода по в моем понимании эквивалентны C>
mSurfaceHolder - > приватная экземплярная (нестатическая) переменная.
> Какой смысл во внутреннем блоке synchronized? Если я верно понял > документацию по java, то все вызовы synchronized методов защищены от > одновременного вхождения для каждого объекта, т.е. следующие 2 метода > по в моем понимании эквивалентны
По объекту mSurfaceHolder теоретически может синхронизироваться еще куча
других объектов и не только этого класса
Posted via RSDN NNTP Server 2.1 beta
Re[2]: synchronized в synchronized методе
От:
Аноним
Дата:
24.01.11 08:46
Оценка:
Здравствуйте, mazurkin, Вы писали:
M>По объекту mSurfaceHolder теоретически может синхронизироваться еще куча M>других объектов и не только этого класса
Указано, что mSurfaceHolder приватная и не статическая для данного класса.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, mazurkin, Вы писали:
M>>По объекту mSurfaceHolder теоретически может синхронизироваться еще куча M>>других объектов и не только этого класса
А>Указано, что mSurfaceHolder приватная и не статическая для данного класса.
ну так блоки синхронизации находятся в методах класса, не обязательно само поле наружу выдавать
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, mazurkin, Вы писали:
M>>По объекту mSurfaceHolder теоретически может синхронизироваться еще куча M>>других объектов и не только этого класса
А>Указано, что mSurfaceHolder приватная и не статическая для данного класса.