Расскажи про планировщик Go (GMP модель)

В модели GMP G представляет горутину, M — поток ОС, P — ресурсы для выполнения Go-кода. Планировщик связывает готовую G с M, у которого есть P.

Короткий ответ

Что ответить на собеседовании

В модели GMP G представляет горутину, M — поток ОС, P — ресурсы для выполнения Go-кода. Планировщик связывает готовую G с M, у которого есть P.

Подробный разбор

Ответ с пояснениями

В модели GMP G представляет горутину, M — поток ОС, P — ресурсы для выполнения Go-кода. Планировщик связывает готовую G с M, у которого есть P.

Количество P соответствует GOMAXPROCS. M может выполнять Go-код, находиться в системном вызове или простаивать; число M не обязано совпадать с числом P.

При ожидании runtime может переключиться на другую готовую горутину. При блокирующем системном вызове ресурсы выполнения могут быть переданы другому потоку. Это позволяет множеству горутин конкурировать за процессор, не выделяя поток каждой задаче.

Источник: github.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее