
Какое официальное объяснение этому? Я всегда забываю.
решение1
Многозадачность или многопоточность на одном процессоре также называется воспринимаемой многопоточностью. Очевидно, что с одним процессором невозможно выполнять команды одновременно. Вместо этого мы чередуем процессы, создавая иллюзию многопоточности.
Как добавил @Journeyman Geek, это использует вытеснение. Это когда у нас есть некая структура (например, очередь), где программы хранятся, и каждый процесс получает определенное количество циклов для выполнения. Затем текущая запущенная программа вытесняется (или заменяется другой программой), а затем эта программа запускается. Существует множество стратегий для определения того, какие программы когда выполняются. Мы могли бы быть полностью справедливыми (например, Round Robin) и каждая программа получала бы определенный квант времени или мы могли бы разделить программы по приоритету и выполнять только программу с более низким приоритетом, когда больше нет программ с более высоким приоритетом для выполнения (например, Priority Queue).
Это полезно, когда, скажем, вы пишете приложение GUI и запускаете длительную фоновую задачу. Если бы это было написано как однопоточное приложение, то интерфейс GUI завис бы. Однако с двумя потоками GUI остается отзывчивым. Даже если есть только один ЦП, чередование процессов означает, что GUI остается отзывчивым, в то время как фоновый процесс продолжает работать и продвигаться.
решение2
Hyper Threadingскорее всего, в современных системах - короче говоря, дублируется часть, но не все ядро, чтобы можно было запустить больше потоков на ядро
решение3
По сути, операционная система берет каждое приложение (и каждый поток в каждом приложении) по очереди и запускает его в течение нескольких циклов ЦП. Так что если у вас запущено 10 приложений, то за 10-секундный период каждое из них будет работать в течение 1 секунды.
Это означает, что каждое приложение работает медленнее, чем если бы оно было единственным приложением, запущенным на компьютере, но для подавляющего большинства приложений большая часть времени тратится на ожидание ввода данных пользователем.
ВидетьВикипедияЧтобы получить больше информации.
решение4
По сути, когда вы запускаете много приложений на однопоточном процессоре, операционная система переключает процессор между приложениями. Это делается так быстро, что создается иллюзия многозадачности. Так что по сути происходит следующее: процессор отдает свои циклы требуемому приложению, а затем переходит к другому, а затем снова к первому приложению. Все это делает операционная система. Когда процессор переключается на другое приложение, которое работает одновременно, состояние предыдущего приложения сохраняется, так что когда процессор снова возвращается к этому приложению, он запоминает состояние приложения, в котором он был оставлен.