我的理解是:
std::mutex
无论其他线程想要读取还是写入,都会阻塞它们,而 boost::shared_mutex
则允许多个线程进行读取。
所以我的问题是,我是否应该始终优先选择使用 boost::shared_mutex
,以便可能发生并行读取?使用常规的 std::mutex
感觉就像我拒绝了某些可能的读取吞吐量....?
shared_mutex
的锁定成本更高,如果您的读取器仅短时间锁定,则可能导致争用。 - T.C.std::mutex
是C++11标准中的标准,而Boost不是。 - Basile Starynkevitch