x86 / x86-64上智能指针的原子交换

时间:2018-12-02 15:53:54

标签: c++ x86-64 shared-ptr smart-pointers double-compare-and-swap

是否可以在不使用事务性内存的情况下为x86 / x86-64上的智能指针实现原子交换。对于对shared_ptr进行原子交换特别感兴趣。

现代处理器上有CMPXCHG8BCMPXCHG16B指令。可以将它们用于实现shared_ptr的原子交换吗?

1 个答案:

答案 0 :(得分:1)

我认为shared_ptr是不可能的,因为您必须在单个原子操作中修改指针本身以及旧对象和新对象的引用计数器