c++ - Boost - shared_mutex 必须是同一个实例吗?

标签 c++ multithreading boost locking

我想将 shared_mutex 与共享/唯一锁一起用于读/写。

现在如果我有 2 个对象并且我希望它们使用相同的锁,我可以将第一个互斥锁的值分配给第二个互斥锁吗?
还是我必须创建一个指向 shared_mutex 的指针,然后让它们都指向同一个对象实例?

我的意思是,这会正常工作吗?两个对象会在同一个锁上工作吗?:

typedef boost::shared_mutex ReadWriteMutex;
    class A {
    ReadWriteMutex lock;
}

void test() {
    A a = new A();
    B b = new B()
    b.lock = a.lock;
}

最佳答案

这将无法正常工作。 shared_mutex 派生自 boost::noncopyable。您想要使用的是指向互斥量的指针或引用。

关于c++ - Boost - shared_mutex 必须是同一个实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5528177/

相关文章:

c++ - 如何展开模板特化

C++ future 并行处理

c++ - 我正在尝试在不同线程上的Windows API中使用OpenGL

Java线程run()时调用其他方法{while(true){这里执行}}

c++ - 如何使用 boost::process 向子进程发送 SIGTERM

c++ - 编译 boost::math 的性能测试应用程序

python - 无法安装 Caffe 的先决条件 "Boost"

c++ - Qt - 对...的 undefined reference (Ubuntu 14.04 LTS 64 位)

c++ - 有没有办法为将来的添加准备一个结构?

c++ - 通过 C++ 异常保留函数时进入调试器?