Soft Affinity bedeutet im Kontext Scheduling der Betriebssystemlehre und Informatik, dass bestimmte Threads nur auf CPUs laufen können, auf denen sie zuvor schon gelaufen sind.
Der Vorteil und Sinn dieses Verfahrens besteht darin, dass mit relativ hoher Wahrscheinlichkeit noch Daten des Threads im CPU-Kontext (Cache) gespeichert sind und so beim Kontext-Switch einige Ressourcen eingespart werden können.
Hierbei ist zu beachten, dass die Priorität eines Threads Vorrang vor der Soft Affinity hat. (Beispiel: Thread 1 hat eine Soft Affinity zu CPU 1, CPU 2 ist belegt von Thread 2, Thread 3 hat eine höhere Priorität als Thread 1, muss also vorher abgearbeitet werden, dann wird Thread 3 auf CPU 1 laufen, obwohl keine Soft Affinity besteht)