@ Hot_Licks: На самом деле, если потоки - это две гиперпотоки, работающие на одном и том же ядре, то нет проблем с доступом к ним разных потоков в режиме чтения или записи.Чистые линии распределяются бесплатно между аппаратными потоками на одном и том же процессоре Intel.Даже грязные строки передаются очень дешево - хотя вы можете получить MOnukes, если один парень читает данные одновременно, а другой пишет.(Как ни странно, без штрафа, если два таких аппаратных / гиперпотока пишут одновременно.)
С единственным «поточным» процессором AMD, Bulldozer, я думаю, что совместное использование записи еще дешевле.
Но это относится только к аппаратным потокам, например, гиперпотокам Intel или логическим процессорам, работающим на тех же физических процессорах.Если они работают на разных физических процессорах, победа не будет.Поскольку большинство программных потоковых потоков переносят потоки произвольно, ваше правило не так уж плохо.
Тем не менее, вы все равно хотите свести к минимуму (а) строки, к которым обращается один поток, и (б) общее количество строк, к которым обращается несколькотемы, даже если они не разделены другими потоками.Так как кеши - MLC, LLC - это ограниченный ресурс.Но вы правы - как только вам не хватает кеша ...