BOOST:递归shared_mutex?

Gab*_*iMe 15 c++ boost-thread

似乎Boost的shared_mutex不是递归的..反正这有什么问题吗?(没有重新实现整个东西)

And*_*hko 7

看看这个帖子和这个优秀的解释为什么shared_mutex总的来说是个坏主意.所以,如果你不同意,recursive_mutex是糟糕的想法也一样,只是使用它没有任何shariness因为它不能给你任何的性能提升.即使有任何重大变化,您也会收到更清晰的代码.

我试图在我的项目中使用shared_mutex来锁定高度竞争的地图,因为许多线程经常读取数据而很少修改它.收到的性能结果有点差


Gia*_*nni -3

在这些情况下你必须使用shared_ptr。将你的互斥体放入一个shared_ptr中,它会对你的互斥体进行引用计数,这会给你类似的结果。

  • `shared_ptr` 与这个问题无关。问题不在于共享物理对象(“shared_ptr”允许),而是关于锁的共享和递归所有权(同步概念而不是 C++ 对象)。 (3认同)