Sobes.tech
Back to questions
Senior
1

Что знаешь про планировщик горутин в Go?

Companies where asked
СБК ПАРУС

Answer from AI

sobes.tech AI

Планировщик горутин в Go — это встроенный в рантайм механизм, который управляет выполнением легковесных потоков — горутин. Он реализует модель M:N, где M — количество системных потоков (OS threads), а N — количество горутин. Планировщик распределяет горутины по системным потокам, обеспечивая конкурентное выполнение без необходимости создавать отдельный поток ОС на каждую горутину.

Основные компоненты планировщика:

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

Планировщик использует работу с очередями горутин, балансировку нагрузки между P и M, а также механизмы preemption (прерывания) для справедливого распределения времени процессора между горутинами. Это позволяет эффективно использовать системные ресурсы и реализовывать высокую конкурентность с минимальными накладными расходами.