相关疑难解决方法(0)

Boost中的多个读者,单个写入器锁

我正在尝试在多线程场景中实现以下代码:

Get shared access to mutex
Read data structure
If necessary:
   Get exclusive access to mutex
   Update data structure
   Release exclusive lock
Release shared lock
Run Code Online (Sandbox Code Playgroud)

Boost线程有一个shared_mutex专为多读者单作者模型设计的类.关于这个类,有几个stackoverflow问题.但是,我不确定它适合任何读者可能成为作家的情况.文件说明:

UpgradeLockable概念是SharedLockable概念的改进,允许可升级的所有权以及共享所有权和独占所有权.这是SharedLockable概念提供的多读取器/单写模型的扩展:单个 线程可以在其他人拥有共享所有权的同时具有可升级的所有权.

从单词"single"我怀疑只有一个线程可以持有可升级的锁.其他人只持有共享锁,无法升级到独占锁.

你知道boost::shared_lock在这种情况下是否有用(任何读者都可能成为作家),或者是否还有其他方法可以实现这一目标?

c++ multithreading boost mutex

12
推荐指数
2
解决办法
1万
查看次数

标签 统计

boost ×1

c++ ×1

multithreading ×1

mutex ×1