我可以将 std::atomic<int64> 放在共享内存中并期望原子操作吗?
Posted
技术标签:
【中文标题】我可以将 std::atomic<int64> 放在共享内存中并期望原子操作吗?【英文标题】:Can I place a std::atomic<int64> in shared memory and expect atomic operation? 【发布时间】:2014-08-01 09:27:42 【问题描述】:std::atomic 是否在共享内存中运行良好,还是未定义?向共享内存添加无锁基本类型似乎是一种简单的方法,但是我相信在共享内存的上下文中无法保证原子行为。
【问题讨论】:
【参考方案1】:为什么不呢,你只需要在共享内存区域内正确分配和构造它。
【讨论】:
【参考方案2】:视情况而定。
如果您使用的架构支持 64 位类型的原子操作,我希望它能够工作。如果std::atomic
是用互斥锁模拟原子操作,那么你就会遇到问题:
【讨论】:
以上是关于我可以将 std::atomic<int64> 放在共享内存中并期望原子操作吗?的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 中等待 std::atomic<int> 的正确方法?
C++ error: use of deleted function ‘std::atomic<short unsigned int>::atomic(const std::atomic<short