Junior
74
questionbank

Что такое горутины?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Легковесные потоки выполнения, управляемые средой выполнения Go. Они создаются ключевым словом go перед вызовом функции.

Основные характеристики:

  • Меньший расход памяти: Горутина начинается с малым размером стека (обычно 2 КБ), который может динамически увеличиваться или уменьшаться.
  • Более быстрое создание: Создание горутины намного быстрее, чем создание системного потока.
  • Мультиплексирование на системные потоки: Множество горутин могут быть мультиплексированы на меньшее количество системных потоков runtime планировщиком Go.
  • Кооперативное планирование: Горутины не вытесняются принудительно; они добровольно уступают управление планировщику (например, при блокирующих вызовах или явных вызовах runtime.Gosched()).

Пример создания:

go

Сравнение с потоками:

ПризнакГорутины GoПотоки ОС
УправлениеСреда выполнения GoОперационная система
Расход памятиНизкий, динамический стекВысокий, фиксированный стек
СозданиеБыстроеМедленное
ПланированиеКооперативноеВытесняющее
СинхронизацияКаналы, sync пакетМьютексы, семафоры ОС