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-ът
}