boost指针容器库可以用作线程安全容器集合吗?
我们可以使用 boost 指针容器库来保存字符串数组并进行线程安全的推送和弹出以及所有此类操作吗?
Can we use boost Pointer Container Library to keep an array of strings winth thread safe push and pop and all such operations?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不,就线程安全而言,相同的规则适用于指针容器库和标准 C++ 库容器。它们对于来自不同线程的同时读取访问都是安全的,但必须受到互斥体的保护以防止同时写入访问。
这是因为指针容器库中的容器仅使用相应标准容器的底层container_type来存储对象。例如,
boost::ptr_vector
使用std::vector
。No, as far as thread safety goes the same rules apply to the pointer container library and the standard C++ library containers. They're both safe for simultaneous read access from different threads but must be protected by mutexes to prevent simultaneous write access.
This is because the containers in the pointer container library simply use an underlying
container_type<void*>
of the corresponding standard container to store the objects. For instance,boost::ptr_vector
uses anstd::vector<void*>
.答案是否定的。现在我必须把答案写到最后 30 个字符,而两个字符就足够了。
No is the answer. And now I have to make the answer last 30 characters when two would suffice.