Назад к вопросам
Middle+
3
Расскажи про планировщик горутин в Go — модель GMP, какие функции выполняет?
Компании, где спрашивали
Веро Трейс
Ответ от нейросети
sobes.tech AI
В Go планировщик горутин реализован по модели GMP — это аббревиатура от G (goroutine), M (machine) и P (processor).
- G — это сама горутина, легковесный поток выполнения.
- M — это системный поток (OS thread), на котором выполняются горутины.
- P — это логический процессор, который связывает горутины с потоками.
P ограничено числом, равным GOMAXPROCS, и управляет выполнением горутин, распределяя их на доступные M. Планировщик GMP отвечает за переключение между горутинами, балансировку нагрузки и эффективное использование системных потоков.
Таким образом, модель GMP позволяет эффективно управлять большим количеством горутин поверх ограниченного числа потоков ОС, обеспечивая высокую конкурентность и масштабируемость.
Пример: если у вас 4 P (GOMAXPROCS=4), то одновременно может выполняться до 4 горутин на 4 потоках ОС, а остальные горутины будут ждать своей очереди.