Это вопрос о 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? Блок памяти в моей ситуации не очень большой, обычно всего несколько мегабайт.