【发布时间】:2014-12-27 20:06:54
【问题描述】:
我遇到了一个关于线程不要访问相同缓存行的建议,我真的不明白为什么,在搜索该主题时,我遇到了以下问题: Multiple threads and CPU cache 其中一个答案建议:
您只是想避免两个线程同时尝试访问位于同一缓存行上的数据
在我看来,缓存存储内存页面以便从进程中快速访问,正如这里所说:http://en.wikipedia.org/wiki/Thread_%28computing%29#How_threads_differ_from_processes
线程共享它们的地址空间
两个线程访问同一个缓存行应该不是问题,因为如果一个页面在缓存中,并且尝试访问内存的线程将获得缓存命中,而不管其他线程如何。
我听说过关于避免线程在几个不同的场合访问同一个缓存行的论点,所以这不是一个神话。我在这里错过了什么?
【问题讨论】:
标签: multithreading caching operating-system