你可以结合std::recursive_mutex
,std::condition_variable
意思是做这样的事情:
std::unique_lock<std::recursive_mutex> lock(some_recursive_mutex)
some_condition_var.wait(lock);
如果不允许,那为什么不呢?
我正在使用 VC++11。
你可以结合std::recursive_mutex
,std::condition_variable
意思是做这样的事情:
std::unique_lock<std::recursive_mutex> lock(some_recursive_mutex)
some_condition_var.wait(lock);
如果不允许,那为什么不呢?
我正在使用 VC++11。
你可以,如果你使用std::condition_variable_any
,它允许任何类型的支持可锁定概念的对象。
但是,在递归互斥锁的情况下,您必须确保给定线程只锁定了递归互斥锁一次,因为条件变量只会在等待期间使用该unlock
方法一次。unique_lock
您可以使用 a 来做到这一点,std::condition_variable_any
它可以采用任何类型的可锁定但 plainstd::condition_variable
专门用于std::unique_lock<std::mutex>
.