【问题标题】:When should I use a upgradable lock?什么时候应该使用可升级锁?
【发布时间】:2015-06-20 11:29:40
【问题描述】:

我用过共享锁和独占锁,但我没有机会使用升级锁。如果有需要upgrade从共享锁到排他锁,只要解锁共享锁,得到排他锁即可。那么在什么情况下应该使用可升级锁呢?

【问题讨论】:

    标签: multithreading boost synchronization


    【解决方案1】:

    如果你需要升级,你会升级,解锁不是一种选择。

    考虑一个在读锁下读取一些信息的原子事务。当提交更新信息的时候到了,你不能在获得写锁之前放弃读锁,因为这意味着另一方可能已经改变了共享状态,以至于你的事务不适用没有了。

    这是您升级锁的地方 - 这可以保证同时没有其他方会获得写锁。

    IOW:解锁产生控制权。解决此问题的另一种方法是,如果您/可能/以后想写一些东西,总是获取写锁。但这会导致过度的排他锁定,而这正是读写器锁定的目的。

    【讨论】:

      猜你喜欢
      • 2011-05-01
      • 1970-01-01
      • 2023-04-02
      • 2011-04-15
      • 2017-04-10
      • 2012-03-19
      • 2018-05-12
      • 2018-12-11
      • 1970-01-01
      相关资源
      最近更新 更多