与 std::lock_guard 相比,std::scoped_lock 的目的只是处理多个互斥体

Is the purpose of std::scoped_lock only to handle multiple mutexes, compared to std::lock_guard?

本文关键字:lock std 处理 相比 guard scoped      更新时间:2023-10-16

在阅读有关std::scoped_lockstd::lock_guard的文档时,唯一的区别是scoped_lock可以处理多个锁保护,并且可以在解锁时避免死锁。

这是唯一的区别吗?如果我只有一个mutex,我应该继续使用使用lock_guard吗?

据我所知,唯一重要的区别是scoped_lock有一个可变参数构造函数,如您所提到的,需要多个mutex。此外,您还可以实现具有模板专用化的单参数版本的scoped_lock

因此,lock_guard有点非正式地"弃用"。

我认为lock_guard仍然存在,因为兼容性