Sobes.tech
Back to questions
Senior
2

Расскажи про работу планировщика Go (GMP-модель).

Companies where asked
.wrk

Answer from AI

sobes.tech AI

Планировщик Go основан на модели GMP — Goroutine, Machine, Processor.

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

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

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

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