2009-08-06 10 views
1

Im Allgemeinen kümmert sich das Betriebssystem um das Zuweisen von Threads zu Kernen. Ich frage mich, ob es einen Weg für das Programm gibt, an dieser Zuweisung beteiligt zu sein.API zum Zuordnen von Threads zu Kernen

Mit anderen Worten: Gibt es eine API (für die Linux- oder Win32-Plattformen), die es ermöglicht, einen Thread zu erstellen, der einem bestimmten Kern zugeordnet ist?

Antwort

1

Beachten Sie, dass Windows die Möglichkeit bietet, die Affinität des Prozesses, aber auch jedes seiner Threads unabhängig festzulegen. Linux bietet nur Möglichkeiten, die Affinität des Prozesses festzulegen.

Für Windows ist die Prozessfunktion SetProcessAffinityMask. Auch Windows hat den Begriff "idealer" Prozessor (SetThreadIdealProcessor), der viel besser zu verwenden ist, wenn Sie nicht wissen, was Sie tun (obwohl der Begriff in XP nicht funktioniert).

3

Unter Windows SetThreadAffinityMask. Im Allgemeinen tun Sie das nicht. Das Betriebssystem ist fast sicher besser als Sie.