Я новичок в этом вопросе. Может ли кто-нибудь дать упрощенное объяснение различий между следующими барьерами памяти?
MemoryBarrier ();
_mm_mfence ();
asm volatile (""::: "memory");
_ReadWriteBarrier ();
Если нет простого объяснения, некоторые ссылки на хорошие статьи или книги, вероятно, помогут мне разобраться. До сих пор меня устраивало, что я просто использую объекты, написанные другими, обертывающими эти вызовы, но я хотел бы иметь лучшее понимание, чем мое текущее мышление, которое в основном похоже на то, что существует более одного способа реализовать барьеры памяти под прикрытием.