Sobes.tech
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 да се изпълни
}