ЕМ>Вам известны такие сценарии?
Ну так да. Самый простой сценарий. Есть пременная flag которая в одном потоке читается, что-то в духе
while(flag) {...}
а во втором изменяется
flag = false
Так вот, изменяя переменную во втором потоке, мы не знаем когда эти изменения "прилетят" в первый поток. Все зависит от того, где находится эта самая переменная, когда будут сброшены процессорные кеши итд.