我正在寻找一个好的 C++ 读/写锁。我们有一个不常写者和许多常读者的用例,并希望对此进行优化。最好我想要一个跨平台的解决方案,但是只有一个 Windows 是可以接受的。
原文由 Matt Price 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在寻找一个好的 C++ 读/写锁。我们有一个不常写者和许多常读者的用例,并希望对此进行优化。最好我想要一个跨平台的解决方案,但是只有一个 Windows 是可以接受的。
原文由 Matt Price 发布,翻译遵循 CC BY-SA 4.0 许可协议
C++17 支持 std::shared_mutex
。它在 MSVC++ 2015 和 2017 中受支持。
原文由 Serge Rogatch 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答1.1k 阅读✓ 已解决
1 回答992 阅读✓ 已解决
4 回答780 阅读
1 回答859 阅读
1 回答890 阅读
1 回答657 阅读
1 回答765 阅读
较新版本的 boost::thread 具有读/写锁(1.35.0 及更高版本,显然以前的版本无法正常工作)。
它们的名称为
shared_lock
、unique_lock
和upgrade_lock
并在shared_mutex
上运行