Ell*_*ron 5 c++ boost-thread boost-mutex
堆栈溢出有几个例子,其中一个函数获得的升级锁第一和然后获得由升级的独占访问.我的理解是,如果不小心使用,这会导致死锁,因为两个线程都可以获得可升级/共享锁,然后两者都尝试升级,此时两者都不能继续,因为另一个具有共享锁.
我想要的是首先获得独占锁,然后降级到共享锁,而不完全释放锁.我找不到这样的例子.有任何想法吗?
Com*_*sMS 4
Boost 通过UpgradeLockable概念提供此功能。您正在寻找的方法是unlock_and_lock_shared().
unlock_and_lock_shared()
这个概念的实现由类提供upgrade_mutex。
upgrade_mutex
归档时间:
12 年,1 月 前
查看次数:
672 次
最近记录:
9 年,3 月 前