Да, многопоточность и многопоточность почти не имеют отношения к числу процессоров или ядер в машине ...
РЕДАКТИРОВАТЬ ДОБАВЛЕНИЕ: говорить о том, «сколько потоков выполняется на одном процессоре», - оксюморон. Только один поток может работать на одном процессоре. Многопоточность - это несколько потоков в ПРОЦЕССЕ, а не в ЦП. Прежде чем другой поток может быть запущен на любом процессоре, поток, который в данный момент находится на этом процессоре, должен прекратить работу, и его состояние должно быть сохранено где-то, чтобы ОС могла перезапустить его, когда получит следующий «ход».
Код выполняется в «Процессах», которые представляют собой логические абстракции, которые могут выполнять одну или несколько последовательностей инструкций кода и независимо управлять ресурсами компьютера от других процессов. Внутри процесса каждая отдельная последовательность инструкций кода является «потоком». На каком процессоре они работают, не имеет значения. Один поток может работать на другом процессоре каждый раз, когда ему назначается процессор для выполнения ... и несколько потоков, поскольку каждый из них назначен циклам процессора, могут, по совпадению, работать на одном процессоре (хотя, очевидно, не одновременно)
ОС (компонент ОС) отвечает за "запуск" потоков. Он хранит в памяти список всех потоков и постоянно «переключается» (это называется переключением контекста) между ними. Он делает это на машине с одним процессором почти точно так же, как на машине с несколькими процессорами. Даже на компьютере с несколькими процессорами каждый раз, когда он «включает» поток, он может передавать его другому процессору или тому же процессору, как в прошлый раз.