以下为网上搜罗的有关unique_lock的总结,如有读者看到有任何问题和补充,欢迎留言~
1. unique_lock比lock_guard更灵活
unique_lock是个类模板,
lock_guard替代了mutex的lock()和unlock()的功能,
unique_lock扩展了lock_guard。
2. unique_lock的参数
unique_lock的参数,第一个为绑定的mutex,第二个为选项类型。
std::unique_lock<std::mutex> uni_lock(my_mutex, 参数);
选项类型包括:
std::adopt_lock
std::try_to_lock
std::defer_lock
2.1 std::adopt_lock
表示参数一中的mutex已经被lock了,创建unique_lock时不再自动上锁。
2.2 std::try_to_lock
创建unique_lock时尝试取lock这个mutex,之后使用owns_lock()来查看是否上锁成功。
std::unique_lock(std::mutex) uni_lock(my_mutex,std::try_to_lock);
if

本文详细介绍了C++中unique_lock的用法,包括其灵活性、构造参数、选项类型(adopt_lock、try_to_lock、defer_lock)以及成员函数如lock()、unlock()、try_lock()和release()。unique_lock相比lock_guard提供了更多控制,如在需要时手动加锁和解锁,以及通过release()转移所有权。
最低0.47元/天 解锁文章
379

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



