每个进程的std::shared_ptr
个托管对象的最大数量是否有限制?
这是因为每个进程有一个maximum number个互斥锁。
如果std::shared_ptr
的实现正在使用互斥锁,那么对象管理对象的数量是否有类似限制?
讨论基于互斥量和基于原子操作的实现的答案非常受欢迎。
答案 0 :(得分:1)
通常不会,没有限制,因为普通操作系统上的shared_ptr实现不使用底层的互斥(它们使用原子递增/递减函数)。此外,实现可以例如选择使用单个互斥锁管理所有引用计数访问。在某些情况下可能会很慢,但它可以工作。