简短介绍:我正在处理多线程代码,我必须在两个线程之间共享动态分配的对象。为了使我的代码更清晰(并且不易出错),我想在每个线程中显式“删除”对象,这就是我想使用shared_ptr
.
第一个问题:
我想知道 in 的实现-> operator
在运行时shared_ptr
是否有一些额外的开销(例如大于 then unique_ptr
)。我正在谈论的对象通常是在创建后仅复制一次的长寿命实例(当我在线程之间分配它们时),然后我只访问这些对象的方法和字段。
我知道,shared_ptr
这只保护引用计数。
第二个问题:
shared_ptr
libstdc++的优化程度如何?它总是使用互斥锁还是利用原子操作(我专注于 x86 和 ARM 平台)?