Блоки, которые синхронизируются на одном и том же объекте (или методе), гарантированно не будут выполняться одновременно. Так что , пока вы синхронизируете с одним и тем же объектом , ваша переменная никогда не будет иметь одновременных обращений, поэтому она не требует специальной обработки.
Если ваш доступ не синхронизирован, значит, у вас есть состояние гонки. Создание переменной volatile
может быть правильным для некоторых примитивных переменных (я обращаюсь к другим сообщениям для большей информации о volaitle). Если это бесполезно, у вас почти наверняка есть ошибка.