gpt4 book ai didi

c++ - boost::shared_mutex 多读/单写互斥

转载 作者:太空狗 更新时间:2023-10-29 21:27:17 27 4
gpt4 key购买 nike

我正在尝试使用 boost::shared_mutex 来实现多读取器/单写入器互斥锁。我的问题很简单,当另一个线程试图锁定该 shared_mutex 以进行写入时,一个线程是否有可能获得对 shared_mutex 的读者访问权限?比如我有10个线程,只有一个可以写,

  • 线程 1 在该 shared_mutex 上有一个 shared_lock 并尝试读取某事
  • 线程 2 在该 shared_mutex 上有一个 shared_lock 并尝试读取某事
  • 线程 3 在那个 shared_mutex 上有一个 unique_lock 并尝试写一些东西
  • 线程 4 在该 shared_mutex 上有一个 shared_lock 并尝试读取某事
  • 线程 5 在那个 shared_mutex 上有一个 shared_lock 并尝试读取某事

shared_mutex 当前被thread 2 共享锁定,我的问题是thread 4 是否有可能在thread 之前获得对该shared_mutex 的读取权限3会写吗?读取器/写入器互斥体是否有可能陷入饥饿状态,例如,100 个读取器与 100 个读取器1个作家?

谢谢。

最佳答案

显然 boost::shared_mutex 将公平策略留给了实现。它可以是公平的,读者优于作者,也可以是作者优于读者,因此根据您的特定版本,作者可能会饿死。

关于c++ - boost::shared_mutex 多读/单写互斥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com