Какие знаешь преимущества горутин перед потоками ОС

«Какие знаешь преимущества горутин перед потоками ОС» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Горутины легковеснее потоков ОС:

  • Потребляют меньше памяти (2KB стека против 1MB у потоков)
  • Быстрее создаются и переключаются (нет накладных расходов на системные вызовы)

Управляются рантаймом Go, а не ОС:

  • Планировщик Go эффективно распределяет горутины по потокам ОС
  • Работают даже при блокировке одной горутины

Пример создания 1000 горутин без проблем:

for i := 0; i < 1000; i++ {
    go func() {
        // работа горутины
    }()
}

Потоки ОС в таком количестве создадут высокую нагрузку. Горутины — идеальный выбор для конкурентных задач в Go.