Sobes.tech
Back to questions
Middle
2

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

Companies where asked
VKVK

Answer from AI

sobes.tech AI

Горутины в Go — это лёгкие потоки выполнения, управляемые рантаймом Go, а не операционной системой. Они позволяют запускать функции параллельно с минимальными затратами по памяти и времени на переключение контекста.

Отличия от системных потоков:

  • Горутины намного легче по ресурсам (обычно стартуют с нескольких килобайт стека, который динамически растёт).
  • Планировщик горутин встроен в рантайм Go и эффективно распределяет их по системным потокам.
  • Переключение между горутинами происходит быстрее, чем между системными потоками.

Пример создания горутины:

func sayHello() {
    fmt.Println("Hello from goroutine")
}

func main() {
    go sayHello() // запускает горутину
    time.Sleep(time.Second) // ждём, чтобы горутина успела выполниться
}