如何将mutex所有权从共享升级到升级?

时间:2011-07-19 19:23:18

标签: c++ multithreading boost

对不起我的愚蠢问题,但我怎么能 升级共享所有权以升级?

那么与unlock_upgrade_and_lock_shared()相反的方法是什么? (有没有。) 因此,如果共享所有权,如何在没有unlock_shared()和lock_upgrade()的情况下将其“升级”为升级?

我无法理解升级所有权的概念。 为什么没有像unlock_shared_and_lock()这样的方法? 那么,拥有像“升级”这样的所有权有什么好处?

非常感谢,对不起我的英语(以及愚蠢的问题):)!

1 个答案:

答案 0 :(得分:1)

您的主管拥有升级所有权,或者拥有共享所有权,或者拥有独占所有权。 lock_upgrade()会将您的所有权从shared转换为upgrade。提供升级所有权,因此您可以直接获得独占所有权而无需释放共享锁。

此处docs可能对理解锁所有权类型以及如何管理所有可能的状态更改有所帮助。