The*_*ver 8 c++ multithreading mutex locking c++11
shared_lock和shared_mutex.lock_shared()其他比的析构函数shared_lock解锁相关的互斥?shared_mutex我唯一可以使用的互斥类shared_lock吗?lock_guard而不是unique_lock?shared_lock)一个变量,并且我有一个变量试图将其锁定为write(unique_lock),那么这个写入线程是否优先于其他线程?shared_mutex.lock_shared()是一个shared_mutex在共享模式下锁定的函数调用,而shared_lock是一个“锁定类”,用于在范围结束时锁定和自动解锁互斥锁。
不,您可以使用shared_lock满足SharedMutex要求的任何类型。
始终使用lock_guard,除非你需要额外的功能unique_lock。这样你的意图就更清楚了。
这不取决于shared_lock或unique_lock,而是取决于SharedMutex您使用的是什么。标准没有规定确切的行为。但这里有一些线索:
shared_lock通常会使用SRWLOCK并尝试公平,例如将尝试平衡读者和作者。没有人会拥有更高的优先级。shared_mutex最有可能在上面实现,pthread_rwlock_t并且实现通常会优先考虑读取器,因为它需要支持递归读取锁。shared_mutex力求公平,不偏袒任何一方。使用 reader-preferring 时shared_mutex,如果总是至少有一个 reader 持有它,则您的 writer 线程可能永远不会获取锁。
| 归档时间: |
|
| 查看次数: |
1951 次 |
| 最近记录: |