你能與std::condition_variable
結合std::recursive_mutex
,意義做這樣的事情:你可以把std :: recursive_mutex和std :: condition_variable結合起來嗎?
std::unique_lock<std::recursive_mutex> lock(some_recursive_mutex)
some_condition_var.wait(lock);
如果它不允許的,那麼爲什麼不呢?
我正在使用VC++ 11。
「您必須確保給定線程只鎖定遞歸互斥鎖一次」 - >這意味着您無法在遞歸互斥鎖上使用條件,不是嗎?我的意思是條件的目的是與其他線程同步,如果在等待期間不保證互斥鎖被解鎖,那麼這將不起作用。 –
@HugoMaxwell這取決於你的用例。如果你知道你的鎖只有1級,那麼你可以在條件下使用它。例如,如果互斥量的遞歸性質僅用於條件的信號端,則它將正常工作。 –