【发布时间】:2020-03-14 01:54:55
【问题描述】:
据我了解 shared_ptr 它包含一个指向控制块的指针,该控制块包含原始指针强计数和弱计数。
我处于需要无锁分配的情况,因此我可以从池分配的内存中分配一个原始指针,然后使用自定义删除器创建一个唯一指针以将其放回池中,到目前为止不错。
但是,在 shared_ptr 的情况下,如果我使用这些原始指针和自定义分配器之一构造一个共享指针,它会在该点分配控制块吗?
如果有,有没有办法以无锁的方式为控制块提供内存?
【问题讨论】:
-
你想避免什么锁?
-
@DavidSchwartz Recommended reading
-
@LightnessRaceswithMonica 谢谢。正如我所怀疑的那样,这表明这里无事可做。如果不是垃圾,您的平台已经做了正确的事情。
-
我完全不是这么读的。
标签: c++ shared-ptr pool lock-free