Skip to content

Анатомия Go: Как работает планировщик горутин на самом деле

By Николай Тузов — Golang

1 ч 54 мин видео·ru··112540 views

Это пересказ, составленный ИИ, — видео канала Николай Тузов — Golang длительностью 1 ч 54 мин «Анатомия Go: Как работает планировщик горутин на самом деле», опубликовано 2 марта 2025 г.. Полная расшифровка сжата до 10 тезисов с переходом по таймкодам.

Пересказ

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

Тезисы

  • Понимание внутренних механизмов планировщика Go критически важно для оптимизации кода, особенно при работе с I/O-bound, CPU-bound задачами, файлами и сетью. 
  • Go-планировщик разработан для обеспечения дешевой и эффективной конкурентной работы, максимально задействуя ядра процессора и упрощая асинхронное выполнение задач. 
  • Планировщик Go реализует модель M:N, где множество горутин выполняются на ограниченном количестве системных тредов, что позволяет создавать тысячи горутин с минимальными накладными расходами. 
  • Go использует концепцию горутин — легковесных "пользовательских" тредов, управляемых планировщиком Go, в отличие от системных тредов, управляемых операционной системой. 
  • Механизм "Work Stealing" позволяет простаивающим процессорам забирать половину работы из локальных очередей других, более загруженных процессоров, обеспечивая балансировку нагрузки. 
  • Для эффективного распределения работы и минимизации блокировок, планировщик использует модель GMP (Goroutine, Machine, Processor) с локальными очередями (LRQ) для каждого процессора и глобальной очередью (GRQ). 
  • Для обработки блокирующих системных вызовов (например, работа с файлами), Go использует механизм "Hand-off", создавая новый системный тред для выполнения других горутин, пока заблокированный тред ожидает. 
  • Сетевые операции и другие неблокирующие системные вызовы обрабатываются через "Network Poller", который позволяет горутинам ожидать ответа, не блокируя системные треды и не создавая новые. 
  • System Monitor (SimoN) играет ключевую роль в планировщике, отслеживая время выполнения горутин, инициируя Hand-off для долгих syscall'ов и перемещая долго ожидающие горутины из Network Poller'а в GRQ. 
  • Планировщик Go является кооперативным, но с версии 1.14 включает элементы вытесняющей многозадачности, позволяя принудительно прерывать долго выполняющиеся горутины для предотвращения зависаний. 
Анатомия Go: Как работает планировщик горутин на самом деле

Анатомия Go: Как работает планировщик горутин на самом деле

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

Тезисы

Понимание внутренних механизмов планировщика Go критически важно для оптимизации кода, особенно при работе с I/O-bound, CPU-bound задачами, файлами и сетью.
Go-планировщик разработан для обеспечения дешевой и эффективной конкурентной работы, максимально задействуя ядра процессора и упрощая асинхронное выполнение задач.
Планировщик Go реализует модель M:N, где множество горутин выполняются на ограниченном количестве системных тредов, что позволяет создавать тысячи горутин с минимальными накладными расходами.
Go использует концепцию горутин — легковесных "пользовательских" тредов, управляемых планировщиком Go, в отличие от системных тредов, управляемых операционной системой.
Механизм "Work Stealing" позволяет простаивающим процессорам забирать половину работы из локальных очередей других, более загруженных процессоров, обеспечивая балансировку нагрузки.
Для эффективного распределения работы и минимизации блокировок, планировщик использует модель GMP (Goroutine, Machine, Processor) с локальными очередями (LRQ) для каждого процессора и глобальной очередью (GRQ).
Для обработки блокирующих системных вызовов (например, работа с файлами), Go использует механизм "Hand-off", создавая новый системный тред для выполнения других горутин, пока заблокированный тред ожидает.
Сетевые операции и другие неблокирующие системные вызовы обрабатываются через "Network Poller", который позволяет горутинам ожидать ответа, не блокируя системные треды и не создавая новые.
System Monitor (SimoN) играет ключевую роль в планировщике, отслеживая время выполнения горутин, инициируя Hand-off для долгих syscall'ов и перемещая долго ожидающие горутины из Network Poller'а в GRQ.
Планировщик Go является кооперативным, но с версии 1.14 включает элементы вытесняющей многозадачности, позволяя принудительно прерывать долго выполняющиеся горутины для предотвращения зависаний.
Пересказ любого видео — бесплатно
Summarizer.tube
Копировать всё
Ссылка
В закладки

Пересказ любого видео с YouTube — бесплатно

Вы только что прочитали пересказ этого видео. Вставьте ссылку на любое другое — получите тезисы с таймкодами за секунды. Без регистрации, 5 в день бесплатно.

Ещё материалы

Другие пересказы

11 мин

Отпусти ситуацию и она разрешится: простой принцип изменить свою жизнь — Вадим Зеланд

Истории для сна | Денис Астровскийru

Видео объясняет, что отпускание ситуации и принятие ее такой, какая она есть, освобождает от стресса и тревоги, открывая новые возможности, вместо того чтобы пытаться контролировать все аспекты жизни,

НЕОБХОДИМО ПОЗВОЛИТЬ СЕБЕ ИМЕТЬ [2023] Трансерфинг

Трансерфинг Просто!ru

Для достижения богатства и исполнения желаний необходимо не только хотеть или действовать, но и глубоко внутренне "позволить себе иметь" желаемое, согласовывая душу и разум, преодолевая ограничивающие

9 мин

РЕАЛЬНОСТЬ ОТРАЖАЕТ НАШИ ОЖИДАНИЯ [2024] Трансерфинг просто!

Трансерфинг Просто!ru

Видео объясняет, как наша реальность формируется через ментальные фильтры, убеждения и сознательное управление вниманием, подчеркивая важность баланса и отказа от избыточной значимости для воплощения

10 мин

100% РАБОЧАЯ ТЕХНИКА “КВАНТОВЫЙ ПЕРЕХОД” ЗАПУСКАЕТ НОВУЮ РЕАЛЬНОСТЬ [2023] Трансерфинг просто!

Трансерфинг Просто!ru

Видео представляет мощную медитативную технику для вхождения в состояние своего нового, усовершенствованного «я» и приближения желаемой реальности через подготовку, обнуление, слияние с аватаром и инт

1 ч 41 мин

URGENT UPDATE - Iran War Expert: A Mass Casualty Attack Is Coming! | Robert Pape

The Diary Of A CEOru

Видео анализирует эскалацию конфликта между США и Ираном, подчеркивая растущую мощь Ирана благодаря контролю над Ормузским проливом, надвигающийся глобальный экономический кризис из-за нехватки нефти