Есть процесс который порождает 2 треда . Каждый из тредов что то активно считает. Будет ли на двухядерном процессоре баланс нагрузки. В том смысле что бы один тред исполнялся на одном ядре а второй тред на другом. OS Windows XP SP2. Или не все так просто ?
В идеале - да.Но если хочешь быть уверенным на все 100%,SetThreadAffininty[кажетцо так] тебе поможет.
asmlamo не обязательно. Может твои 2 треда на одном ядре, а какие-толевый 2 треда в противовес на другом.
n0name не обязательно, но, как правило, обычно распределяется. С другой стороны, если присмотреться в таскменеджере на загрузку ядер (процов), то она будет ровнее после SSetThreadAffinityMask(). Для наглядности можно погонять JtR (SetProcessAffinityMask() ибо он однопоточный)
Ну если мои два треда ресурсоемкие и левый тред не ресурсоемкий. Будет ли баланс нагрузки. Ядро Windows отслеживает это ?
В первую очередь надо разработать механизм точного определения, одновременного выполнения кода, двумя ядрами. А то без этого что либо заявлять- ничем не подкрепленое голословие (да и когда дяди-пиндусы из м$, все по уму делали?). А так, в системе и без того дохрена левых потоков, да и ядро перидически дергает проц, летая туда-сюда из к-моде в пользовательский режим, со всеми вытекающими промахами кэша, и обломами мультипотоковости. Так что всё это бабко надвое сказала.