我正试图解决类似餐饮哲学家的问题。我怎样才能锁定两个资源?锁定一个资源然后等待另一个资源不是最佳选择。
我只能使用条件变量和互斥量,但唯一的解决方案是“不是最好的”。
我在用C语言写作。
答案 0 :(得分:-3)
std::lock
可以带两个参数,两个unique_locks。用`std :: defer_lock'参数调用它们:
std::unique_lock<std::mutex> lock_one(mutex_one, std::defer_lock);
std::unique_lock<std::mutex> lock_two(mutex_two, std::defer_lock);
std::lock(lock_one, lock_two);`