не создает барьер памяти, но предотвращает изменение порядка чтения и записи; барьер памяти является в некотором смысле более надежным, чем чтение или запись в изменчивых полях.

еУчебник Джозефа Албахарив качестве генераторов барьеров памяти упоминаются следующие:

C # 'slock заявление (Monitor.Enter/Monitor.Exit)Все методы наInterlocked классАсинхронные обратные вызовы, использующие пул потоков - к ним относятся асинхронные делегаты, обратные вызовы APM и продолжения задачУстановка и ожидание на сигнальной конструкцииВсе, что зависит от сигнализации, например, запуск или ожидание задачи

Кроме того, Ганс Пассант и Брайан Гидеондобавил следующее (при условии, что ни одна из них не вписывается ни в одну из предыдущих категорий):

Запуск или пробуждение потокаПереключение контекстаThread.Sleep()

Мне было интересно, если этот список был завершен (если полный список можно было бы даже практически сделать)

РЕДАКТИРОВАТЬ предложенные дополнения:

Изменчивый (чтение подразумевает забор приобретения, написание подразумевает забор выпуска)

Ответы на вопрос(3)

Ваш ответ на вопрос