Sobes.tech
Junior — Middle

Ako sa v jazyku Go vykonáva riadenie a rozdeľovanie úloh medzi gorutinami?

sobes.tech AI

Odpoveď od AI

V jazyku Go je riadenie a rozdelenie úloh medzi gorutiny vykonávané plánovačom (schedulerom), ktorý je zabudovaný do runtime prostredia Go. Gorutiny sú ľahké vlákna, ktoré sa spúšťajú pomocou kľúčového slova go.

Plánovač Go rozdeľuje gorutiny medzi systémové vlákna (OS threads) a riadi ich vykonávanie, zabezpečujúc konkurenciu a paralelizmus. Používa model M:N, kde M je počet systémových vlákien a N je počet gorutín.

Príklad vytvorenia gorutiny:

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

func main() {
    go sayHello() // spustí gorutinu
    time.Sleep(time.Second) // čaká, aby gorutina mohla vykonať
}

Týmto spôsobom vývojár jednoducho spustí gorutinu, a runtime Go rozdeľuje úlohy a prepína medzi nimi.