每个处理器核心都可以拥有自己的缓存。缓存是通读和读取的。如果两个线程在不同的内核上运行并且通过信号量进行同步,那么在读取内存位置缓存时会发生这个位置的不同版本,或者它们是否以某种方式由处理器透明地同步?我对x86和RISC感兴趣。
答案 0 :(得分:0)
您可能使用的每台SMP计算机都具有在硬件中实现的缓存一致性。
答案 1 :(得分:0)
根据Linux文档(https://www.kernel.org/doc/Documentation/memory-barriers.txt): 虽然预期缓存是连贯的,但不能保证这种一致性 将被订购。这意味着虽然在一个CPU上进行了更改 最终在所有CPU上都可见,不能保证它们会出现 在其他CPU上以相同的顺序变得明显。