最佳答案
scoped_lock
是 lock_guard
的严格高级版本,它一次锁定任意数量的互斥锁(使用与 std 相同的死锁避免算法: :lock
)。在新代码中,您应该只使用 scoped_lock
。
lock_guard
仍然存在的唯一原因是为了兼容性。它不能被删除,因为它在当前代码中使用。此外,改变它的定义(从一元到可变)被证明是不可取的,因为这也是一个可观察的,因此是破坏性的变化(但出于某种技术原因)。
关于c++ - std::lock_guard 还是 std::scoped_lock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43019598/