c++ - 每个进程的最大 std::shared_ptr 管理对象数

标签 c++ c++11 shared-ptr

每个进程的 std::shared_ptr 托管对象的最大数量是否有限制?

问这个是因为有一个 maximum number每个进程的互斥量。 如果 std::shared_ptr 的实现是使用互斥量,那么管理对象的对象数量不也有类似的限制吗?

非常欢迎讨论基于互斥锁和基于原子操作的实现的答案。

最佳答案

通常没有,没有限制,因为普通操作系统上的 shared_ptr 实现不在后台使用互斥锁(它们使用原子递增/递减函数)。此外,例如,一个实现可以选择使用单个互斥体来管理所有引用计数访问。在某些情况下可能会很慢,但它可以工作。

关于c++ - 每个进程的最大 std::shared_ptr 管理对象数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22919710/

相关文章:

c++ - 我是否必须使用 weak_ptr.lock() 来测试它是否指向有效对象?

C++ tolower 特殊字符,如 ü

c++ - 如何使插入排序更快?

c++ - 从 C++ 到 OpenGL 的数据复制适用于自定义容器,但不适用于 std::tuple

<< 运算符的 c++11 特定重载

c++ - auto using parens 可以表示函数原型(prototype)吗?

c++ - boost::shared_ptr 和继承

c++ - 使用带有多重继承的enable_shared_from_this

c++ - 摆脱安全消息 Outlook

c++ - 您将如何将 Alexandrescu 的 Expected<T> 与 void 函数一起使用?