Я пытаюсь понять, почему этот пример является правильно синхронизированной программой:
a - volatile
Thread1:
x=a
Thread2:
a=5
Поскольку существуют конфликтующие обращения (есть запись и чтение a), поэтому в каждом последовательном выполнении последовательности должно происходить - до отношения между этими обращениями. Предположим, что одно из последовательных выполнений:
1. x=a
2. a=5
Происходит 1 - до 2, почему?