为什么要使用std :: mutex而不是boost :: shared_mutex?

时间:2014-08-11 10:34:30

标签: c++ multithreading boost

我的理解是:std::mutex阻止其他线程,无论他们是否想要读取或写入,而boost::shared_mutex将允许多次读取。

所以我的问题是,我是否应该总是更喜欢boost::shared_mutex而不是普通的std::mutex来允许并行读取的可能性?使用正常std::mutex感觉就像我否认一些可能的读取吞吐量....?

1 个答案:

答案 0 :(得分:7)

我不能说出他们两人之间的表现,但我的猜测是因为额外的逻辑boost::shared_mutex可能会慢一些。除此之外,根据您拥有的读取器数量,您可能会阻止写入线程的时间超过您想要的时间,因为它必须等到所有读取访问完成后才会完成。