Следующая цитата взята из this tutorial.Что именно подразумевается под «побочными эффектами» кода?
Я не могу понять последнюю строку абзаца (на которую я применил жирный шрифт). Что означает побочные эффекты кода?
Атомные действия не могут чередоваться, поэтому их можно использовать без страха вмешательства потока. Однако это не устраняет необходимость синхронизации действий атома, поскольку ошибки согласованности памяти все еще возможны. Использование изменчивых переменных снижает риск ошибок согласованности памяти, поскольку любая запись в изменчивую переменную устанавливает связь между событиями и последующими чтениями этой же переменной. Это означает, что изменения в изменчивой переменной всегда видны для других потоков. Более того, это также означает, что когда поток читает изменчивую переменную, он видит не только последнее изменение волатильности, но и побочные эффекты кода, которые привели к изменению.
http://stackoverflow.com/questions/9169232/java-volatile-and-side-effects?rq=1 – Thilo