每个处理器核心可以具有其自己的高速缓存。高速缓存是直写和直读。如果两个线程在不同的核心上运行,并且由信号量同步,那么在读取内存位置缓存时,会不会发生该位置的不同版本,或者它们是否以某种方式被处理器透明地同步?我对x86和RISC很感兴趣。
发布于 2014-03-29 05:08:29
您可能使用的每台SMP机器都在硬件中实现了高速缓存一致性。
发布于 2014-03-29 05:45:17
根据Linux文档(https://www.kernel.org/doc/Documentation/memory-barriers.txt):因为虽然期望缓存是一致的,但不能保证这种一致性是有序的。这意味着,虽然在一个CPU上所做的更改最终将在所有CPU上可见,但不能保证它们在其他CPU上以相同的顺序变得明显。
https://stackoverflow.com/questions/22720851
复制相似问题