Из документации я прочитал, что это реализует строгий порядок среди всех ядер, даже для неатомарных операций, и что это очень дорого, поэтому его следует использовать экономно.
Мои вопросы:
Если я работаю на виртуальной машине у облачного провайдера, мои ограждения прерывают других гостей на машине?
Если нет, то как это возможно, поскольку эта операция реализована аппаратно, а не программно?
Зависит ли это от конкретной технологии виртуализации? Реализует ли это KVM/QEMU иначе, чем машины GCP или AWS?
Допустим, я называю барьер памяти следующим образом: [code]std::atomic_thread_fence(std::memory_order_seq_cst);[/code] Из документации я прочитал, что это реализует строгий порядок среди всех ядер, даже для неатомарных операций, и что это очень дорого, поэтому его следует использовать экономно. Мои вопросы: [list] [*]Если я работаю на виртуальной машине у облачного провайдера, мои ограждения прерывают других гостей на машине? [*]Если нет, то как это возможно, поскольку эта операция реализована аппаратно, а не программно? [*]Зависит ли это от конкретной технологии виртуализации? Реализует ли это KVM/QEMU иначе, чем машины GCP или AWS? [/list]