linux - 2 个线程访问在第 3 个线程中创建的对象涉及什么开销 - 每个线程具有不同的 CPU 亲和性(c++ 和 linux)?

标签 linux multithreading cpu hpc affinity

假设线程 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/

相关文章:

java - 如何在 ubuntu 中启动、停止和重新启动 bash 脚本

java - 连接到google fit android API不在 Activity 类中

linux - AWK if 条件匹配一个字符串

c++ - 字符串常量之前的预期标识符

c++ - 我可以在C/C++中(在Linux上)将`a.out`文件转换为“可执行文件”吗?

java - 仅有一个Java使用者和生产者线程的并发队列

java - JMeter - 如何设置线程组,许多工作线程然后重复?

opengl - 多设备 OpenCL/OpenGL 环境

java - 从 Java 内部 throttle CPU

c - 如何存储数组以适合缓存行大小