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

Junior
1.1k просмотров
AFK Offer AI

Горутины — легковесные потоки выполнения, управляемые Go runtime. Запускаются через ключевое слово go:

go func() {
    fmt.Println("hello from goroutine")
}()

Горутина занимает ~2-8 KB стека (растёт динамически), обычный поток ОС — ~1-8 MB. Можно создать миллионы горутин. Go scheduler мультиплексирует горутины на потоки ОС по модели M:N.

Важно: main-горутина не ждёт остальные — нужно явно синхронизировать через каналы, WaitGroup или context.

Следующий вопрос

Что такое channel direction (направление канала)?