代码之家  ›  专栏  ›  技术社区  ›  Vitaly Dyatlov

最容易实现的模式1编写器-具有boost库的多个读取器

  •  1
  • Vitaly Dyatlov  · 技术社区  · 17 年前

    我在std::map中开发了一个具有多个线程和一个Cache的模块。有时我需要更新缓存。在这段时间里,所有读者都必须等待,而我会更新地图。

    1 回复  |  直到 17 年前
        1
  •  4
  •   Tim Sylvester    17 年前

    shared_mutex 替换 read_write_mutex ?

    对。

    ...

    基本上 unique_lock<shared_mutex> 会给你一个写锁, shared_lock<shared_mutex> upgrade_mutex<shared_mutex> 将为您提供一个读取锁,您可以通过以下方式进行升级 将所有权(通过移动)转移给 unique_lock<shared_mutex> .

    http://lists.boost.org/Archives/boost/2008/01/132656.php