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.