Мне было интересно, что ключевое слово volatile заботится о делах между потоками или между файлами — через внешние дела или и то, и другое?
Я делал эксперименты, но результаты были немного запутанными ..
В C ++ volatile
ключевое слово имеет ничего такого делать с синхронизацией совсем! Это не забота ни о чем-либо, ни о процессе, ни о процессе. Единственная цель volatile
убедитесь, что компилятор создает код, который имеет доступ к volatile
переменное время каждый раз, когда код говорит, что делает. Одно предложение для volatile
Ключевое слово — ввод-вывод с отображением в память.
Если вы хотите изменить переменную из нескольких потоков, volatile
не правильно … посмотрите в Блокированные функции