如果我们已经手动解锁了 unique_lock,那么它在销毁时是否会解锁?

sho*_*dze 5 c++ multithreading mutex locking

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

Nat*_*ica 6

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

确保:owns == false.

析构函数

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

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