Re: Вопрос на засыпку: синхронизация на разных volatile
От: StanislavK Великобритания  
Дата: 17.07.13 08:39
Оценка:
Здравствуйте, seno, Вы писали:

S>Вопрос: каковы возможные результаты работы Thread 2 (можно выбрать несколько)?

S>а) Ничего не отпечатает;
S>б) Отпечатает 0;
S>в) Отпечатает 1.

Все варианты возможны. В данном сценарии нет никаких ограничений.
Если даже считывать ту же переменную, то все равно все будет так же, т.к. нет гарантии, что второй поток выполнится до присваивания volatile в первом.
Еще момент, что компилятор в праве переупорядочить присваивания 'a' и 'flag' или придумать еще более страшную оптимизацию, так как они не volatile.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.