Предположим, что поток Alpha
записывает в переменную A
без блокировки. Второй поток Beta
ожидает завершения Alpha
, затем по очереди считывает переменную A
.
Возможно ли, что содержимое A
не будет свежим? Может ли запись в память быть отложена сверх времени жизни потока? Не будет ли стандартный механизм ожидания завершения потока Alpha
неявно работать как барьер памяти?
ОБНОВЛЕНИЕ 1
Есть ли какие-нибудь примеры ожидания, которые не включают барьер памяти?