我在std :: map中开发了一个具有多个线程和一个Cache的模块。有时我需要更新缓存。在那个时候,所有读者都必须等待,而我更新地图。
如何与boost库进行同步?
P.S。:前段时间在Boost中是read_write_mutex。但在目前的Boost版本中,它错过了。
答案 0 :(得分:4)
shared_mutex
会替换read_write_mutex
吗?是
...
基本上
unique_lock<shared_mutex>
会给你写锁,shared_lock<shared_mutex>
会给你一个读锁定,并且upgrade_mutex<shared_mutex>
会给你一个读锁,而不是升级 将所有权(带移动)转移到unique_lock<shared_mutex>
。