Sobes.tech
Back to questions
Senior
6

Как работает планировщик Go (GMP)?

Companies where asked
I-teco

Answer from AI

sobes.tech AI

Планировщик Go основан на модели GMP (G — goroutine, M — OS thread, P — processor).

  • G (goroutine) — легковесная нить выполнения, которую создает программа.
  • M (machine) — реальный поток операционной системы, на котором выполняются goroutine.
  • P (processor) — логический процессор, который связывает M и G, управляет выполнением.

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

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

Это позволяет Go эффективно управлять тысячами goroutine на ограниченном числе потоков ОС, обеспечивая высокую конкурентность и масштабируемость.