У меня простой вопрос - как синхронизировать следующее?
У меня есть основной поток и дополнительный поток, который делает что-то только один раз и что-то - более одного раза.
В основном:
Вторичная резьба:
{
Do_Something_Once();
while (not_important_condition) {
Do_Something_Inside_Loop();
}
}
Я хочу приостановить свой основной поток, если не выполнено действие Do_Something_Once
, и сейчас я использую обычное значение bool is_something_once_done = false;
, чтобы указать, завершено ли действие.
Следовательно, код моего основного потока выглядит следующим образом:
{
Launch_Secondary_Thread();
while (!is_something_once_done) {
boost::this_thread::sleep(milliseconds(25));
}
}
, что, очевидно, не лучший способ выполнить такую синхронизацию.
Любые альтернативы (лучше, если boost::thread
- питание)?
Спасибо