首页 > 解决方案 > 如果我们已经手动解锁了 unique_lock 是否会在销毁时解锁?

问题描述

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

标签: c++multithreadinglockingmutex

解决方案


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

确保:owns == false.

析构函数

效果:如果owns调用pm->unlock().

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


推荐阅读