Sobes.tech
Назад к вопросам
Middle
1

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

Компании, где спрашивали
VKVK

Ответ от нейросети

sobes.tech AI

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

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

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

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

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

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