我在 std::map 中开发了一个具有多个线程和一个缓存的模块。有时我需要更新缓存。届时所有读者都必须等待,而我会更新 map 。
如何与 boost 库同步?
P.S.:前段时间在Boost中是read_write_mutex。但在当前版本的 Boost 中,它错过了。
最佳答案
will
shared_mutex
replaceread_write_mutex
?是的。
...
基本上
unique_lock<shared_mutex>
会给你一个写锁,shared_lock<shared_mutex>
会给你一个读锁,并且upgrade_mutex<shared_mutex>
会给你一个读锁,你可以通过 将所有权(移动)转移到unique_lock<shared_mutex>
.
关于c++ - 最简单的实现模式 1 writer - 多个 readers with boost library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1349060/