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

Why ever use std::mutex instead of boost::shared_mutex?

本文关键字:mutex boost shared std 为什么      更新时间:2023-10-16

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

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

我不能说他们两个之间的性能,但我的猜测是,因为额外的逻辑boost::shared_mutex可能会更慢。除此之外,根据您拥有的读取器数量,您可能会阻塞写线程的时间比您希望的要长,因为它必须等待所有读访问完成。