Это вопрос о NUMA.
Например, в приведенном ниже коде выделяется ли буфер в локальной памяти потока/процесса на протяжении всей его жизни?
for (int th = 0; th < maxThreads; th++)
{
threads[th] = std::thread([&, th] {
int* buffer = new int[1000];
// do something
delete []buffer;
}
}
Обновление: чтобы сделать вопрос более простым, позвольте мне задать его таким образом. Если у меня запущено 10 одновременных потоков (скажем, от t0 до t9), и в рамках каждого потока он выделяет блок памяти (скажем, от m0 до m9). Будет ли поток t_n всегда работать с m_n (n от 0 до 9) перед выходом из потока, или поток 0 может мигрировать и работать с памятью 9? Блок памяти в моей ситуации не очень большой, обычно всего пару мегабайт.