Junior — Middle
Как се реализира и управлява работата на множество горутини в приложението?
sobes.tech AI
Отговор от AI
В Go, goroutine-ите са леки нишки, управлявани от средата за изпълнение на Go, а не от операционната система. Когато в приложението се създаде много goroutine-и, планировчикът на Go разпределя тяхното изпълнение върху ограничен брой системни нишки (M), използвайки модел M:N (M системни нишки за N goroutine-и).
Планировчикът на Go разпределя goroutine-ите между нишките, превключвайки контекста много бързо и ефективно. Това позволява изпълнението на хиляди и дори милиони goroutine-и с ниски разходи за памет и време.
Пример за създаване на goroutine:
func sayHello() {
fmt.Println("Здравей от goroutine")
}
func main() {
go sayHello() // стартиране на goroutine
time.Sleep(time.Second) // даваме време на goroutine да се изпълни
}