Sobes.tech
Junior — Middle

Какво прави горутините по-ефективни в сравнение с традиционните нишки?

sobes.tech AI

Отговор от AI

Goroutine-те в Go са по-ефективни в сравнение с традиционните нишки (threads) поради няколко ключови характеристики:

  • Лекота: Goroutine-те заемат много малко памет (обикновено около 2 KB стек), докато системните нишки изискват много повече памет.
  • Планировчик на ниво език: Go има собствен планировчик за goroutine-те, който ефективно разпределя тяхното изпълнение върху системните нишки, позволявайки да се стартират хиляди goroutine-ве едновременно без значителни разходи.
  • Бързо създаване и превключване на контекста: Създаването и превключването между goroutine-те е много по-бързо отколкото между ОС нишки, което намалява разходите за многозадачност.

Пример за създаване на goroutine:

func sayHello() {
    fmt.Println("Здравей от goroutine")
}

func main() {
    go sayHello() // стартиране на goroutine
    time.Sleep(time.Second) // изчакване, за да се изпълни goroutine-ът
}