【发布时间】:2018-03-12 21:14:05
【问题描述】:
我试图了解 C++11 如何处理共享指针控制块上的强引用计数。我很乐意在调用析构函数时将其减一。
我的问题是在运行时增加动态分配的控制块上的强引用计数。在多个运行时上下文的情况下,这对我来说看起来更加复杂。
程序如何从不同的上下文中找到相同的强引用计数?
编辑:我的问题不在于 shared_ptr 的实现。这是关于在多进程/线程/上下文环境中使用它。
【问题讨论】:
-
“增加控制块上的强引用计数”究竟是什么意思?
-
不确定我是否理解问题 - 构造函数将引用计数增加 1,析构函数将其减少 1
-
@nwp "拥有托管对象的 shared_ptrs 的数量" 如en.cppreference.com/w/cpp/memory/shared_ptr中所述
-
增加引用计数的唯一方法是复制
shared_ptr。您知道引用计数是因为您从正在复制的shared_ptr获得它。
标签: multithreading c++11 shared-ptr context-switch