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