Сценарий выглядит следующим образом: Thread A продолжает выполнение до тех пор, пока не получит сигнал остановки от потока B, который продолжает считывать ввод с консоли.C++ Лучший способ разделить состояние между потоками
Каков наилучший способ реализации этого? Например, я думаю, что я мог бы реализовать его как глобальную переменную, которую поток A проверяет каждый раз, а поток B может меняться на сигнал «stop»,
Но я не знаю, является ли это Правильный способ.
Даже если это правильно, я должен использовать "Летучие" или "Atomic <>"? Особенно, что поток A только считывает значение переменной, а поток B записывает только переменную.
А что, если изменение переменной из потока B сразу после того, как поток A прочитал, это не имеет значения (не вызывает проблемную нить). Время выключения несколько ослаблено (допускается после сигнала) »)?
Есть ли другой способ для нитки B начать нить A и остановить ее, когда она захочет?
Лучший способ обмена данными между потоками - инкапсулировать поток и данные для совместного использования в классе. –
Состояние Не данные, хотя это может не иметь никакого значения –
Что еще означает _state_, чем иметь данные? Также рассмотрите возможность редактирования вашего вопроса. Эта стена текста трудно читать, как есть. –