【发布时间】:2020-10-28 06:06:24
【问题描述】:
在采访中,有人问我std::shared_ptr 中的计数器有什么特殊性(它是原子的)。但是,我听说std::shared_ptr 不适用于多线程。什么是真的?
【问题讨论】:
-
是的,它有一个原子计数器。不过,说它“不适用于多线程”确实含糊不清。这一切都取决于你用它做什么以及你的好坏指标是什么。
-
还有其他方法可以实现不需要计数器的 shared_ptr(在 shared_ptr 之间使用指针环)。
-
This answer 在
std::shared_ptr中有更多关于原子计数器的详细信息
标签: c++ c++11 shared-ptr atomic