Sobes.tech
Junior — Middle

Jak je v jazyce Go zajišťováno řízení a rozdělení úkolů mezi gorutiny?

sobes.tech AI

Odpověď od AI

V jazyce Go je řízení a rozdělení úkolů mezi gorutiny prováděno plánovačem (schedulerem), který je vestavěný do runtime Go. Gorutiny jsou lehké vlákna, která jsou spuštěna pomocí klíčového slova go.

Plánovač Go rozděluje gorutiny na systémové vlákna (OS threads) a řídí jejich provádění, zajišťuje konkurenci a paralelismus. Používá model M:N, kde M je počet systémových vláken a N je počet gorutin.

Příklad vytvoření gorutiny:

func sayHello() {
    fmt.Println("Ahoj z gorutiny")
}

func main() {
    go sayHello() // spustí gorutinu
    time.Sleep(time.Second) // čeká, aby gorutina měla čas se vykonat
}

Tímto způsobem vývojář jednoduše spustí gorutinu, a runtime Go rozděluje úkoly a přepíná mezi nimi.