Normalerweise vergibt das Betriebssystem die Threads so, dass die Prozessoren eines Multiprozessorsystems möglichst gleichmässig ausgelastet sind. Ein Thread ist nicht an einen Prozessor gebunden, sondern der Scheduler kann jedes mal wenn ein Thread Rechenzeit erhält, ihn auf einem anderen Prozessor ausführen.
Man kann mit den Systemfunktionen SetThreadAffinityMask und SetThreadIdealProcessor zu beeinflussen, auf welchem Prozessor ein Thread ausgeführt wird. Mit SetThreadAffinityMask kann man einschränken, auf welchem Prozessor ein Thread ausgeführt werden kann und mit SetThreadIdealProcessor kann man einen bevorzugten Prozessor angeben - der Scheduler lässt den Thread dann nach Möglichkeit auf diesem Prozessor laufen, kann ihn aber auch einem anderen zuweisen.
Im Normalfall ist es aber nicht sinnvoll, diese Funktionen zu benutzen, weil sie die Möglichkeiten des Schedulers einschränken.
Stefan
_________________
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.