Могу ли я использовать только Memory_order_relaxed, когда меня не волнует время?C++

Программы на C++. Форум разработчиков
Anonymous
Могу ли я использовать только Memory_order_relaxed, когда меня не волнует время?

Сообщение Anonymous »

У меня есть поток1, чувствительный к производительности, который выполняет действиеA, и еще один поток, который решает, что поток1 должен выполнить действиеB:

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

std::atomic_bool doActionB = false;

Thread1 func()
{
while (not doActionB.load(std::memory_order_relaxed))
actionA();
while (1)
actionB();
}

Thread2 func2()
{
while (1)
if (condition)
doActionB.store(true, std::memory_order_relaxed);
}
  • Гарантировано ли, что Thread1 получит сигнал и перейдет в ActionB в какой-то момент?
  • Есть ли для этого лучший дизайн?


Подробнее здесь: https://stackoverflow.com/questions/787 ... ut-timiing

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