每个进程的最大std :: shared_ptr托管对象数

时间:2014-04-07 17:57:53

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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