我什么时候不应该将 hardware_delta_interference_size 与 std::atomic 一起使用

问题描述 投票:0回答:1

hardware_destructive_interference_size
用于防止虚假分享。 cppreference 有一个示例,尝试将其他一些数据与 std::atomic:

保存在一起
// from https://en.cppreference.com/w/cpp/thread/hardware_destructive_interference_size
struct together
{
    std::atomic<int> dog;
    int puppy;
};

问题:在大多数情况下,我认为我们希望

together
具有
hardware_destructive_interference_size
的对齐方式,并且在通常情况下,我们希望
std::atomic
具有
hardware_destructive_interference_size
的对齐方式,以防止错误共享。什么时候不是这样?

c++ c++17
1个回答
0
投票

full示例的目的(您只显示了其中的一部分)是您想要确保如果您访问原子,您已经加载了包含

puppy
的缓存行。这是相长性干扰,而不是破坏性干扰。

© www.soinside.com 2019 - 2024. All rights reserved.