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

时间:2015-07-25 01:54:05

标签: c++ multithreading c++14 readwritelock

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

我一直在寻找如何使用C ++ 11(such as the method here)实现此锁定,但我注意到应该可以使用C ++ 14' { {1}}完成同样的事情。但是,在查看cppreference之后,我发现了shared_lockstd::shared_lock,但我并不了解如何一起使用它们(与has simple method calls的Boost方式相比用于唯一和共享模式的锁定。)

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

1 个答案:

答案 0 :(得分:2)

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

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

但是,在使用读/写锁之前,请注意potentially harmful performance implications。根据具体情况,简单的std::mutex可能会更快。