Q:

Распределение потоков по ядрам процессора

Если я создаю два потока в системе с двумя ядрами, я могу быть уверен, что они не попадут на одно ядро или хотя бы не попадут на одно виртуальное ядро (сейчас я говорю про hyper threading). И если нет, то могу ли я вообще как-то повлиять на это? Или ОС сделает все за меня наилучшим образом?

A:

На это можно повлиять, например в WinAPI при помощи функции SetThreadAffinityMask. Но обычно это не нужно, ОС сама все распределит наилучшим образом.

