【问题标题】:Reader / Writer Lock with timeout using conditional variable使用条件变量超时的读取器/写入器锁定
【发布时间】:2009-01-27 13:43:02
【问题描述】:

如何使用 C/C++ 中的条件变量编写具有超时的读取器/写入器锁?

【问题讨论】:

  • 这会因平台而异...
  • 我认为您的编辑没有意义。答案本质上是平台相关的,平台无关的库是没有意义的。

标签: c++ c multithreading locking


【解决方案1】:

如果您只是在寻找图书馆,Boost.Thread 可能会满足您的需求。

【讨论】:

    【解决方案2】:

    你可以看看Java的实现源码ReentrantReadWriteLock

    只需获取JDK 解压缩 src.zip 文件并搜索源代码。

    【讨论】:

    • 对不起,我忘了说:解决方案应该是 C/C++
    • 没关系。至少你可以从 Java 的实现中借鉴一些想法
    【解决方案3】:

    在当前的标准 C++ 中不支持这些东西,尽管 C++0x 将有一些线程支持(我还没有检查过多少)。因此,任何答案都必须依赖于平台,在非常普遍的意义上使用平台。

    可以编写在不同底层系统中行为相似的库,并且有相当多的跨平台库。 (当然,如果底层平台的功能不同,这些都会导致效率低下。)可能有一个普遍接受的 C++ 线程库,可以在基于 Windows 和 Unix 的系统上工作(这几乎是你正在运行的任何东西现在在桌面上),但我不知道有一个副手。

    因此,这个问题不能真正按要求回答。有必要在特定的平台或库上回答它,并且没有指定。如果再加上图书馆推荐的请求,这将是有意义的。

    【讨论】:

      【解决方案4】:

      看看Boost.Thread 库。具体来说:shared_mutexupgradeable_mutex 对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-16
        • 1970-01-01
        相关资源
        最近更新 更多