Зачем установить флаг Stop, используя `memory_order_seq_cst`, если вы проверяете его с помощью` memory_order_relaxed`?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Зачем установить флаг Stop, используя `memory_order_seq_cst`, если вы проверяете его с помощью` memory_order_relaxed`?

Сообщение Anonymous »

Herb Sutter, в своем разговоре «Atomic оружие», показывает несколько примеров использования атомики, и один из них сводится к следующему: (видео ссылка, временная метка) < /p>
  • Основной поток запускает несколько рабочих потоков. br />

    Код: Выделить всё

    while (!stop.load(std::memory_order_relaxed))
    {
    // Do stuff.
    }
    
  • Основной поток в конечном итоге выполняет stop = true; (примечание, с помощью порядка =), затем присоединяется к работникам.
Саттер объясняет, что проверяет флаг с помощью порядка = в порядке, потому что кто заботится, если поток останавливается с немного большей задержкой. Код>? Слайд говорит, что это целенаправленно не расслаблен , но не объясняет почему .
Похоже, он будет работать, возможно, с большей остановкой Задержка. < /p>
Это компромисс между производительностью и тем, как быстро другие потоки видят флаг? Т.е. Поскольку основной поток устанавливает флаг только один раз, мы могли бы также использовать самый сильный заказ, чтобы как можно быстрее донести сообщение?

Подробнее здесь: https://stackoverflow.com/questions/705 ... ith-memory
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Восхождение в SEQ от NLOG, делая переменную URL SEQ, настраиваемой в NLOG.CONFIG
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Восхождение в SEQ от NLOG, делая переменную URL SEQ, настраиваемой в NLOG.CONFIG
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Android Adb Stop Command Application, такая как «Force-Stop» для неуровного устройства
    Anonymous » » в форуме Android
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Судья 0: «Не удается написать /SYS/fs/cgroup/memory/box-xxx/memory.limit_in_bytes» Ошибка на Ubuntu 24.04
    Anonymous » » в форуме Javascript
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • --with-memory-manager=none флаг для компиляции MPI
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»