Как устроен планировщик Go (GMP модель)?

Планировщик Go основан на модели GMP (Goroutine, Machine, Processor), которая обеспечивает эффективное управление конкурентностью.

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

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

Планировщик Go основан на модели GMP (Goroutine, Machine, Processor), которая обеспечивает эффективное управление конкурентностью.

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

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

Планировщик Go основан на модели GMP (Goroutine, Machine, Processor), которая обеспечивает эффективное управление конкурентностью.

  • G (Goroutine) — легковесная нить выполнения, которую создаёт программа.
  • M (Machine) — системный поток ОС, на котором выполняются горутины.
  • P (Processor) — логический процессор, ресурс, необходимый для выполнения горутины на M.

Работа планировщика:

  1. Горутине (G) для выполнения нужен P.
  2. P связывается с M (потоком ОС), и на этом M запускается G.
  3. Если горутина блокируется (например, на ввод-вывод), M освобождается, а P может переключиться на другую горутину.
  4. Планировщик балансирует нагрузку между M и G через P, чтобы максимально использовать системные ресурсы.

Таким образом, GMP позволяет эффективно масштабировать выполнение горутин на многопроцессорных системах, минимизируя накладные расходы на переключение контекста и блокировки.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку