2 个线程访问在第 3 个线程中创建的对象涉及什么开销 - 每个线程具有不同的 CPU 亲和力(c++ 和 linux)?
What overhead is involved in 2 threads accessing an object that is created in a 3rd thread - each thread has a different CPU affinity (c++ and linux)?
假设线程A 创建了一个对象(Oa) 供另外两个线程使用。线程 B 写入 Oa,线程 C 从 Oa 读取。
线程 A、B 和 C 分别使用 cpu affinity 锁定到 CPUs 1,2,3。
什么 overhead/activities 与执行 Oa 中的方法有关,因为它是在一个 CPU 中创建的,但被另外两个 CPU 访问?
这个问题更多地涉及执行指令与访问数据(已固定)
我想你问的是 Cache Coherence,这是一个 CPU 的问题。基本上,每个 CPU 都会有该数据的缓存值。对数据的任何更改都会传播到其他 CPUs。
假设线程A 创建了一个对象(Oa) 供另外两个线程使用。线程 B 写入 Oa,线程 C 从 Oa 读取。 线程 A、B 和 C 分别使用 cpu affinity 锁定到 CPUs 1,2,3。
什么 overhead/activities 与执行 Oa 中的方法有关,因为它是在一个 CPU 中创建的,但被另外两个 CPU 访问?
这个问题更多地涉及执行指令与访问数据(已固定)
我想你问的是 Cache Coherence,这是一个 CPU 的问题。基本上,每个 CPU 都会有该数据的缓存值。对数据的任何更改都会传播到其他 CPUs。