Sobes.tech
Назад к вопросам
Senior
8

Что такое переключение контекста горутин? Кто его выполняет?

Компании, где спрашивали
AstonAston

Ответ от нейросети

sobes.tech AI

Переключение контекста горутин — это процесс сохранения состояния текущей горутины и загрузки состояния другой горутины для продолжения её выполнения. В отличие от потоков ОС, горутины легковесны и управляются планировщиком внутри рантайма Go.

Переключение контекста выполняет планировщик горутин (scheduler) внутри Go runtime. Он решает, когда приостановить выполнение одной горутины и начать или возобновить другую, основываясь на доступных ресурсах и блокировках.

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

Примерно так:

  • Горутинa A выполняется.
  • Планировщик решает, что горутина A должна быть приостановлена (например, ожидает I/O).
  • Сохраняется состояние горутины A.
  • Загружается состояние горутины B.
  • Выполняется горутина B.

Весь этот процесс прозрачен для разработчика и происходит внутри Go runtime.