Назад к вопросам
Senior
7
Как работает планировщик Go (GMP)?
Компании, где спрашивали
I-teco
Ответ от нейросети
sobes.tech AI
Планировщик Go основан на модели GMP (G — goroutine, M — OS thread, P — processor).
- G (goroutine) — легковесная нить выполнения, которую создает программа.
- M (machine) — реальный поток операционной системы, на котором выполняются goroutine.
- P (processor) — логический процессор, который связывает M и G, управляет выполнением.
Работа планировщика:
- У каждого P есть очередь готовых к выполнению goroutine.
- M привязывается к P и выполняет goroutine из его очереди.
- Если goroutine блокируется (например, на ввод-вывод), M освобождается и может взять другую goroutine из очереди другого P.
- Планировщик балансирует нагрузку между P, распределяя goroutine для эффективного использования потоков.
Это позволяет Go эффективно управлять тысячами goroutine на ограниченном числе потоков ОС, обеспечивая высокую конкурентность и масштабируемость.