C++多线程-使用std::lock 和 std::unique_lock来进行swap操作

image

在上面代码中std::unique_lock可以传进std::lock,因为std::unique_lock有unique_lock提借lock、try_lock、unlock成员函数。

std::unique_lock有一个owner_lock函数来判断是否现在已经被锁定。你可以会说使用std::lock_guard可能稍微效率一点。但是std::unique_lock使用可以更灵活,一是可以延迟锁定,二是可以将lock的所有权传送给另一个scope。

原文地址:https://www.cnblogs.com/zhangdongsheng/p/12294206.html