Я бы сказал, что это из-за высокой скорости переключения между процессами
Ты прав. Но все же операции, выполняемые микропроцессором, выполняются дискретно, а не непрерывно. Каждый тактовый цикл заставляет процессор извлекать содержимое памяти, на которое указывает счетчик программ. В следующем тактовом цикле он декодирует инструкцию и так далее. Если вы можете стать достаточно быстрыми (чтобы заметить), вы можете заметить, что музыка, которую вы считаете непрерывной, на самом деле играет некоторое время, затем останавливается, затем воспроизводится снова и так далее.
Быстрый и сложный зверь, который делает процесс быстрого переключения, называется «Краткосрочный планировщик» (CPU scheduler). Он должен быть быстрым, потому что он вызывается каждые несколько миллисекунд и не выполняет никакой полезной работы (с точки зрения пользователя). Хотя разные реализации могут иметь небольшие различия, почти все планировщики поддерживают очереди приоритетов для разных классов процессов, таких как активный, фоновый и т.д.
Таким образом, даже если на компьютере запущены тысячи процессов, лишь немногие из них будут напрямую взаимодействовать с пользователем. Планировщики учитывают эту информацию при переключении процессов. Потому что процесс проверки обновлений может подождать, а потоковая передача музыки в реальном времени - нет.
Но мне любопытно, сколько процессов действительно повлияет на производительность процессора до такой степени, что люди будут прекращены
Магического числа не существует, и на производительность влияет множество других факторов (скорость памяти, размер и т.д.). Я думаю, вам не хватит памяти, прежде чем производительность планировщика станет проблемой. Одна вещь, которая может проявляться в виде прерываний, - это когда вызывается какая-то высокоприоритетная подпрограмма прерывания, и она выполняется в течение длительного времени.
Интересный факт: - Чтобы улучшить взаимодействие с пользователем в системе (я забыл), Стив Джобс дал указание инженерам Apple назначить прерывание мыши с наивысшим приоритетом, чтобы указатель не отставал при движении.