6

我在新标准中非常缺少std::shared_lock模板类。在 Boost.Thread 中有boost::shared_lock,甚至boost::upgrade_lock存在。

std::unique_lock为什么会这样,在 C++11中没有 std::shared_lock吗?但是在纯 C++11 中,
如何获得类似的行为?boost::shared_lock

我正在考虑使用boost::shared_lock<std::mutex>,但这没有太大意义,因为std::mutex没有lock_shared()成员。而且,没有这样的std::shared_mutex

4

1 回答 1

11

std::shared_mutex由于没有时间正确考虑,霍华德对 C++11 的提议被拒绝了。他再次为 C++17 提出了它,并且本周在波特兰的会议上正在讨论它。

同时,如果您可以使用 Boost,那么您也可以使用;标准化不会有任何新功能。

也就是说,值得检查一下 usingshared_mutex实际上是有益的——在许多情况下,由于互斥体本身的争用,它并没有提供所希望的性能提升。

于 2012-10-18T13:09:15.517 回答