Junior — Middle
Ako sú implementované a spravované goroutines v jazyku Go?
sobes.tech AI
Odpoveď od AI
Gorutiny v Go sú ľahké vlákna vykonávania, ktoré spravuje runtime Go, nie operačný systém. Umožňujú písanie konkurenčného kódu s minimálnymi zdrojmi.
Kľúčové aspekty implementácie a správy gorútín:
- Vytvorenie: Gorutina sa spustí pomocou kľúčového slova
gopred volaním funkcie. - Plánovač: Runtime Go má vlastného plánovača, ktorý rozdeľuje gorutiny medzi systémové vlákna (plánovanie M:N).
- Zásobník: Každá gorutina má dynamický zásobník, ktorý môže rásť alebo sa zmenšovať podľa potreby, začínajúc s niekoľkými kilobajtmi.
- Komunikácia: Na synchronizáciu a výmenu dát medzi gorutinami sa používajú kanály.
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 dokončiť
}
Takto sú gorutiny efektívnym spôsobom paralelného vykonávania kódu s minimálnymi nákladmi.