注意:这个问题涉及 C++11。C++17(或更高版本)中相同问题的答案可能已经改变。详情:
当我们要锁定多个std::mutex
'es 时,我们使用std::lock()
. 但std::lock()
不提供 RAII 功能。
当我们想以std::mutex
RAII 方式锁定 a 时,我们使用std::lock_guard
. 但std::lock_guard
不能std::mutex
安全地锁定多个'es。
有没有办法利用这两种方法的优势,以std::mutex
RAII 方式锁定多个 'es?