为什么要用std::mutex而不是boost::shared_mutex呢?
Why ever use std::mutex instead of boost::shared_mutex?
我的理解是:std::mutex
阻塞其他线程,无论它们是否想要读取或写入,而boost::shared_mutex
将允许多个读取。
所以我的问题是,我是否应该总是喜欢boost::shared_mutex
而不是正常的std::mutex
,以允许并行读取的可能性发生?使用正常的std::mutex
感觉就像我否认一些可能的读吞吐量....?
我不能说他们两个之间的性能,但我的猜测是,因为额外的逻辑boost::shared_mutex
可能会更慢。除此之外,根据您拥有的读取器数量,您可能会阻塞写线程的时间比您希望的要长,因为它必须等待所有读访问完成。
相关文章:
- BOOST :: MUTEX版本与调试构建
- Use boost strand and std::mutex
- 将 boost::thread 与 C++11 std::mutex 混合使用是否安全?
- 使用Boost ::与包含Boost :: Mutex的类绑定
- boost::interprocess_mutex与进程本地boost::mutex
- 如何try_lock boost::unique_lock<boost::mutex>
- Boost Mutex implementation for Windows
- 为什么我必须有一个 boost::mutex for boost::condition_variable
- boost::mutex和boost::timed_mutex的性能差异
- 如何使用boost::mutex作为std::map中的映射类型
- Boost::类中的Mutex不是线程安全的
- boost::mutex::timed_lock not on Linux
- 与 boost::interprocess_mutex 相比,为什么不在共享内存中使用 boost::mutex
- boost::mutex 无法帮助避免C++程序中的竞争条件
- 尝试等待 boost::condition_Variable 时出现"unique_lock has no mutex: Operation not permitted"错误
- 为什么 boost::mutex 比 std::mutex 快 vs2013.
- boost::mutex 在 Visual Studio 中支持 try_lock_for,但在 Xcode 中不支持
- 与 std::d eque 一起使用时,不能将 Boost::mutex 作为私有类成员吗?
- boost::mutex 和 boost::timed_mutex 之间的区别
- 什么会导致异常 16:抛出"mutex: Resource busy"(使用 Boost / BB10)?