【发布时间】:2014-03-28 18:46:43
【问题描述】:
每个处理器内核都可以有自己的缓存。缓存是直写和直读。如果两个线程在不同的内核上运行并通过信号量同步,是否会在读取内存位置时缓存具有该位置的不同版本,或者它们是否以某种方式被处理器透明地同步?我对 x86 和 RISC 感兴趣。
【问题讨论】:
-
信号量不是硬件功能,在不同的语言中实现方式不同。你指的是什么语言和库?
-
@AlexeiKaigorodov 我讲信号量只是为了表明代码行的执行时间是正确同步的。我真正感兴趣的是缓存是否对程序员透明地同步。如果没有,是否有一些汇编命令来同步它,如果典型语言说 C++ 和线程库(windows 或 linux)使用这些命令来同步,例如调用信号量函数时。
标签: multithreading caching concurrency synchronization processor