繁体   English   中英

如何在C ++ 14中实现读写器锁

[英]How to implement a reader/writer lock in C++14

我有一个哈希表数据结构,希望通过使用读取器/写入器锁来使线程安全(我的读:写比率可能在100:1的某个范围内)。

我一直在寻找如何使用C ++ 11( 例如此处的方法 )来实现此锁定的方法 ,但引起我注意的是,应该可以使用C ++ 14的shared_lock来完成相同的事情。 但是,在查看cppreference之后,我同时找到了std::shared_lockstd::unique_lock但我不知道如何将它们一起使用(与Boost方法相比,Boost方法具有简单的方法来调用唯一和共享模式的锁定) 。

如何仅使用标准库在C ++ 14中重新创建此相对简单的读取器/写入器锁定接口?

C ++ 14具有读/写锁实现std::shared_timed_mutex

旁注:C ++ 17添加了更简单的类std::shared_mutex ,如果不需要额外的计时功能(例如shared_timed_mutex::try_lock_forshared_timed_mutex::try_lock_until ),可以使用shared_timed_mutex::try_lock_until

但是,在使用读/写锁之前,请注意潜在的有害性能影响 根据情况,一个简单的std::mutex可能会更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM