Sobes.tech
Back to questions
Senior
4

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

Companies where asked
Betera Group

Answer from AI

sobes.tech AI

Планировщик 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 позволяет эффективно масштабировать выполнение горутин на многопроцессорных системах, минимизируя накладные расходы на переключение контекста и блокировки.