Bool сигнализирует, доступно ли значение для состояния. состояние и логическое значение впоследствии не изменяется.
Код: Выделить всё
int state;
volatile bool stateAvailable;
Thread A:
while(!stateAvailable) { sleep }
read state
Thread B:
state = 5;
stateAvailable = true;
- Будет ли энергозависимая запись гарантировать, что предыдущие операции будут выполнены, а энергозависимое чтение обеспечит что последующие операции не будут выполняться, тем самым также синхронизируя состояние процессора?
- Или изменчивая запись/чтение только будет гарантировать, что компилятор не оптимизирует проверку bool из Thread A, и это не оказывает никакого влияния на возможно устаревшее значение штат?
Подробнее здесь: https://stackoverflow.com/questions/756 ... rby-fields
Мобильная версия