c++ - 如果我们已经手动解锁了 unique_lock 是否会在销毁时解锁?

标签 c++ multithreading locking mutex

即使我手动调用了 unlockunique_lock::unlock() 函数是否会在销毁时调用,以便在给定的互斥锁上接收到两次解锁信号?

最佳答案

不,它不会尝试解锁。如果你看unlock ,它

Ensures: owns == false.

the destructor

Effects: If owns calls pm->unlock().

因此,由于 unlock 释放了所有权,析构函数将不会尝试解锁它。

关于c++ - 如果我们已经手动解锁了 unique_lock 是否会在销毁时解锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55247360/

相关文章:

C++ 复制赋值运算符问题

database - 在并发访问数据库的上下文中,锁和闩锁有什么区别?

Java-允许一个线程更新值,其他线程等待并跳过关键部分

mysql - MySQL InnoDB 表的恒定锁等待超时

C++:如何在非零大小的 map 中初始化 vector

c++ - 结构 vector 与结构 vector 的映射

c++ - 在没有停靠栏图标的 Mac OS X 中启动 GUI 进程

java - 如果使用不同的对象进行同步,更改对不同的线程是否可见?

c++ - 写时复制 (COW) 习惯用法的线程安全实现?

c++ - 基于DCT的视频编码过程