Sobes.tech
Back to questions
Middle
2

Tell me about goroutines in Go

Companies where asked
SecurityTestXSS

Answer from AI

sobes.tech AI

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

Запуск горутины осуществляется с помощью ключевого слова go перед вызовом функции:

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

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

Горутины используют каналы для синхронизации и обмена данными, что упрощает написание конкурентного кода без явных блокировок.

Основные преимущества:

  • Очень низкие накладные расходы на создание и переключение контекста.
  • Простота синхронизации через каналы.
  • Позволяют эффективно использовать многопроцессорные системы.