我碰到一个建议来抓线程不访问相同的缓存行,我真的不能明白为什么,还同时做对题目我这个问题就围绕一个搜索: Multiple threads and CPU cache 的其中一个回答提示:线程访问同一缓存行的
你只是想避免试图同时访问位于同一缓存行
我看到它,内存高速缓存存储的网页快速的方式进行数据两个线程从过程中访问,并且如此这里说的:http://en.wikipedia.org/wiki/Thread_%28computing%29#How_threads_differ_from_processes
线程共享它们的地址空间
它不应该是一个问题的两个线程,因为如果一个网页是在缓存和线程试图访问访问同一缓存行的无论其他线程如何,内存都会获得缓存命中。
我听说过有关避免线程在几个不同场合访问相同缓存行的争论,所以它不能成为一个神话。我在这里错过了什么?
感谢您的回答是可用的,当我使用它们驻留在同一个C上的用户空间线程PU还是两个非用户线程驻留在同一个CPU上时,没有考虑到这个问题? – 2014-10-31 13:43:23
操作系统会自动将您的线程分配给不同的内核(除非您强制其使用相同的内核)。这就是在多核架构中使用线程的关键。 OTOH,如果性能不是问题,为什么还要首先使用线程呢? :) – 2014-10-31 13:46:24