繁体   English   中英

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

[英]Boost - shared_mutex has to be same instance?

我想将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 您要使用的是互斥量的指针或引用。

我宁愿单独创建锁,然后将其传递给您的对象。

void test()
{
    ReadWriteMutex  lock;
    A a(lock);             // Notice there is no new here.
    A b(lock);

    // DO Stuff with a and b.
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM