Из моего ограниченного знания операционных систем я считаю, что у каждого процесса есть хотя бы один поток, и именно эти потоки планируются, а не сами процессы. Процесс просто содержит информацию о программе и потоках, которые он установил. Таким образом, однопоточное приложение обрабатывается так же, как и многопоточное, но многопоточное приложение может лучше использовать ресурсы.
Например, давайте предположим, что у нас есть два процесса с двумя потоками в каждом и однопоточное приложение, и все они усердно работают на двухъядерном процессоре (или двухъядерном процессоре, здесь нет никакой разницы)
Process A
|_Thread A-1
|_Thread A-2
Process B
|_Thread B-1
|_Thread B-2
Process C
|_Thread C
Каждый поток планируется по всем ядрам ЦП, а загрузка балансируется планировщиком ОС.
Если затем мы установим привязку к процессору для процесса B, чтобы ограничить его одним процессором, то все потоки этого процесса также будут связаны с этим процессором и не будут работать ни на одном другом процессоре. То же самое в отношении процесса C не приведет к каким-либо реальным изменениям, поскольку он может одновременно работать только на одном процессоре.