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