Использование volatile без синхронизации

Зная, что

Reads and writes are atomic for all variables declared volatile

Вопрос 1:Можно ли это понимать так, будто

private volatile int x = 0;

x++;операция атомарна?

И это

Marking variable volatile does not eliminate all need to synchronize atomic actions, because memory consistency errors are still possible.

Вопрос2:Интересно, при каких обстоятельствах (, если таковые имеются ), можно увидеть переменную, помеченную volatile, и не увидеть никаких методов блоков, помеченных как синхронизированные (, которые пытаются получить доступ/изменить переменную )?

Другими словами, следует ли помечать volatileвсе переменные, которые необходимо защитить от одновременной модификации?

10
задан James Raitsev 8 July 2012 в 18:55
поделиться