参考:https://blog.csdn.net/luoshabugui/article/details/109188721
一 类型
1. std::defer_lock_t 、 std::try_to_lock_t 和 std::adopt_lock_t 是用于为 std::lock_guard(C++11) 、 std::scoped_lock(C++14) 、 std::unique_lock(C++11) 和 std::shared_lock(C++17) 指定锁定策略的空结构体标签类型。
2. std::defer_lock 、 std::try_to_lock 和 std::adopt_lock 分别是 std::defer_lock_t 、 std::try_to_lock_t 和 std::adopt_lock_t 的实例。
它们用于为 std::lock_guard 、 std::unique_lock 及 std::shared_lock 指定锁定策略。
二 含义
defer_lock_t 不获得互斥的所有权
try_to_lock_t 尝试获得互斥的所有权而不阻塞
adopt_lock_t 假设调用方线程已拥有互斥的所有权
三 构造函数
1. lock_guard,unique_lock,scope_lock
explicit lock_guard( mutex_type& m ); (1)(C++11 起)
lock_guard( mutex_type& m, std::adopt_lock_t t ); (2)(C++11 起)
lock_guard( const lock_guard& ) = delete; (3)(C++11 起)
unique_lock() noexcept;(1) (since C++11)
unique_lock( unique_lock&& other ) noexcept;(2)(since C++11)
explicit unique_lock( mutex_type& m );(3)(since C++11)
unique_lock( mutex_type& m, std::defer_lock_t t ) noexcept;(4)(since C++11)
unique_lock( mutex_type& m, std::try_to_lock_t t );(5)(since C++11)
un


1704

被折叠的 条评论
为什么被折叠?



