0
目前,我有我的應用程序一個boost ::互斥代碼段,看起來像這樣升壓條件變量等效採用CRITICAL_SECTION
{//Lock
boost::unique_lock<boost::mutex> lock(some_mutex);
while(container.empty())
{
condition_var.wait(lock);
}/*Block if empty - for spurious wakeup*/
......
,,,,,,
}//Unlock
現在some_mutex是一個類型爲boost ::互斥 和condition_var是一個類型爲boost :: condition_variable
現在condition_var被觸發了condition_var.notifyone()
方法不幸的是這個方法需要boost :: mutex函數。 我打算刪除boost :: mutex並使用提供的CRITICAL_SECTION提供的窗口。不過,我相信升壓條件不適用於Windows CRITICAL_SECTION 任何建議我的選擇可能是用CRITICAL_SECTION替換boost :: mutex並用上面代碼中的最小改變?
您需要包裹CRITICAL_SECTION代碼提供鎖定/解鎖方法的類,然後你可以用'提振:: condition_variable_any',它接受它實現了可鎖定概念的任何類。 –
你爲什麼打算更換? boost :: mutex在功能上等同於CRITICAL_SECTION。 – yohjp
由於速度。 – Rajeshwar