- Основной поток запускает несколько рабочих потоков. br />
Код: Выделить всё
while (!stop.load(std::memory_order_relaxed)) { // Do stuff. }
- Основной поток в конечном итоге выполняет stop = true; (примечание, с помощью порядка =), затем присоединяется к работникам.
Код: Выделить всё
seq_cst
Код: Выделить всё
relaxed
Похоже, он будет работать, возможно, с большей остановкой Задержка. < /p>
Это компромисс между производительностью и тем, как быстро другие потоки видят флаг? Т.е. Поскольку основной поток устанавливает флаг только один раз, мы могли бы также использовать самый сильный заказ, чтобы как можно быстрее донести сообщение?
Подробнее здесь: https://stackoverflow.com/questions/705 ... ith-memory