Процесс использует несколько ядер, когда имеет несколько готовых к выполнению потоков ОС. Планировщик может выполнять их одновременно на разных CPU.
Как процесс может одновременно использовать несколько ядер в Linux?
Процесс использует несколько ядер, когда имеет несколько готовых к выполнению потоков ОС. Планировщик может выполнять их одновременно на разных CPU.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Процесс использует несколько ядер, когда имеет несколько готовых к выполнению потоков ОС. Планировщик может выполнять их одновременно на разных CPU.
Один обычный поток не исполняет свой последовательный код сразу на нескольких ядрах. В Go runtime распределяет горутины по потокам, а GOMAXPROCS ограничивает параллельное выполнение Go-кода. Реальная доступность CPU зависит от affinity, cgroups и конкурирующей нагрузки.