假设线程 A 创建了一个对象 (Oa) 供另外两个线程使用。线程 B 写入 Oa,线程 C 从 Oa 读取。 线程 A、B 和 C 使用 cpu affinity 分别锁定到 CPU 1、2、3。
执行 Oa 中的方法涉及哪些开销/事件,因为它是在一个 CPU 上创建但由另外两个 CPU 访问的?
这个问题更多地涉及执行指令与访问数据(已固定)
最佳答案
我想你问的是 Cache Coherence ,这是特定于 CPU 的。基本上,每个 CPU 都会有该数据的缓存值。对数据的任何更改都会传播到其他 CPU。
关于linux - 2 个线程访问在第 3 个线程中创建的对象涉及什么开销 - 每个线程具有不同的 CPU 亲和性(c++ 和 linux)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42930558/