Когда несколько потоков выполняются в одноядерной системе, эти потоки выполняются одновременно или последовательно с помощью быстрого контекстного переключателя (который дает ощущение потоков, работающих одновременно)? благодаря
Многие современные процессоры адаптируют методы, которые позволяют им выполнять несколько потоков на одном ядре. Такие методы называются одновременным многопоточным (или SMT). Например, “Hyper-threading” – это реализация SMT в Intel.
SMT подразумевает, что ядро может извлекать и выполнять две или несколько инструкций из разных потоков одновременно, за один цикл. Если ОС также знает, как работать с SMT, она может планировать потоки таким образом, чтобы на самом деле позволять одновременно выполнять разные потоки на одном и том же ядре. В некоторых случаях он может дать почти такой же импульс, как выполнение потоков на двух (или более в некоторых процессорах) ядрах.
В противном случае это только переключение контекста.
С одним ядром ЦП разные потоки буквально не запускаются одновременно, но ОС может запускать один поток и пропускать другой поток.