我正在學習互斥鎖,我發現,要使用鎖守衛,每次迭代都必須爲鎖守分配內存,調用構造函數,然後調用析構函數。看起來這可能是一個相當大的開銷,與永遠不會超出範圍的鎖相比。我瞭解鎖警衛的優勢,但我可以通過避免他們多少時間來拯救?或者換句話說,線程每次迭代的工作量必須有多少才能使鎖控制開銷顯着?boost :: lock_guard分配,構造函數和析構函數開銷
prepare_data();
{
boost::lock_guard<boost::mutex> lock(mut);
data_ready=true;
}
cond.notify_one();