Доброго времени суток, коллеги.
Осваиваю андроид, ну и параллельно с этим сам язык java — он для меня в новинку. Копаясь в примерах, несколько раз натыкался на конструкцию:
public synchronized void restoreState(Bundle savedState) {
synchronized (mSurfaceHolder) {
// ...
}
}
mSurfaceHolder — приватная экземплярная (нестатическая) переменная.
Какой смысл во внутреннем блоке synchronized? Если я верно понял документацию по java, то все вызовы synchronized методов защищены от одновременного вхождения для каждого объекта, т.е. следующие 2 метода по в моем понимании эквивалентны
public synchronized void method1() {
}
public void method2() {
synchronized (this) {
}
}
и в этом случае дополнительный блок не нужен. Я прав или просто еще чего-то не знаю?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>