volatile с семантикой выпуска / получения

Начиная с Java 5, ключевое слово volatile имеет семантику выпуска / получения, чтобы -эффекты, видимые для других потоков (включая присвоение энергонезависимым переменным!). Возьмите эти две переменные, например:

int i;
volatile int v;

Обратите внимание, что i является обычным, энергонезависимым Представьте, что поток 1 выполняет следующие операторы:

i = 42;
v = 0;

В некоторый более поздний момент времени поток 2 выполняет следующие операторы:

int some_local_variable = v;
print(i);

Согласно модели памяти Java, запись [111381] 40] v в потоке 1 с последующим чтением v в потоке 2 гарантирует, что поток 2 увидит запись в i , выполняемую в потоке 1, поэтому печатается значение 42 .

Мой вопрос: имеет ли volatile такую ​​же семантику выпуска / получения в C #?

6
задан fredoverflow 29 June 2011 в 19:53
поделиться