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.
Работа планировщика:
- Горутине (G) для выполнения нужен P.
- P связывается с M (потоком ОС), и на этом M запускается G.
- Если горутина блокируется (например, на ввод-вывод), M освобождается, а P может переключиться на другую горутину.
- Планировщик балансирует нагрузку между M и G через P, чтобы максимально использовать системные ресурсы.
Таким образом, GMP позволяет эффективно масштабировать выполнение горутин на многопроцессорных системах, минимизируя накладные расходы на переключение контекста и блокировки.