【发布时间】:2016-07-29 04:30:52
【问题描述】:
The boost documentation for upgradable and shared locks 表示当持有共享锁时,只有一个其他线程可以获得可升级锁。因此,如果其他线程在共享锁与可升级锁一起持有时尝试获取可升级锁,它们将阻塞。
当多个线程与一个(或多个共享锁)一起获取可升级锁时,我是否会遗漏一些死锁的可能性?或者这只是一个合乎逻辑的要求(所以“不应该这样做”之类的事情)?
请注意,我不是在谈论独占锁定状态。只有可升级的锁定状态。如果一个可升级锁与其他共享锁一起持有,它本质上是一个读锁。那为什么不能把两个可升级的锁放在一起呢?
【问题讨论】:
-
@downvoter 请解释我可以做些什么来改善这个问题?
-
我会在发现我提出的不适合 SO 的问题后立即删除该问题?
-
这是一个显而易见的问题吗?有人能解释一下我得到这么多反对票的原因吗?
-
关于这个问题有这样的争议。
标签: c++ multithreading c++11 boost mutex