我有一些 STL 容器,我需要在 2 种不同类型的对象之间共享 - 比如说 A 和 B。容器在类 A 中定义并在类 B 中用作引用。由于 STL 容器不是线程安全的,我是计划在 A 中定义 boost::mutex
并将其作为引用存储在类 B 中。
这个计划显然失败了,因为我意识到 boost::mutex
是不可复制的。我无法将容器移出 A 类或在容器上提供包装器。你会在这里做什么?
为什么不能复制互斥体?
最佳答案
我不是 100% 确定我可以遵循,但是如果你想在一个类的两个实例之间共享互斥锁以保护共享资源,为什么不直接使用 boost::shared_ptr<boost::mutex>
从两个实例访问互斥体?
这应该是您需要共享资源时的通用策略,您也可以考虑使用 boost::shared_ptr
对于容器本身,但没有看到您的代码,很难提供一些具体的建议。
关于c++ - 在 2 个对象之间共享容器的提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19069925/