Я узнаю о мьютексах, и я вижу, что для использования защиты блокировки на каждой итерации вам нужно выделить память для защиты блокировки, вызвать конструктор, а затем вызвать деструктор. Похоже, что это может быть значительным объемом накладных расходов по сравнению с блокировкой, которая никогда не выходит за рамки. Я понимаю преимущество блокировки, но сколько времени я могу сэкономить, избегая их? Или, другими словами, насколько мала работа потока на итерацию, чтобы сделать надстройку блокировки значимой?boost :: lock_guard распределение, конструктор и служебные данные деструктора
prepare_data();
{
boost::lock_guard<boost::mutex> lock(mut);
data_ready=true;
}
cond.notify_one();