Junior — Middle
Môžete vysvetliť, čo znamená spúšťanie a správa gorútin v jazyku Go?
sobes.tech AI
Odpoveď od AI
V jazyku Go sú gorutiny ľahké vlákna vykonávania, ktoré spravuje runtime Go. Spustenie gorutiny umožňuje vykonávať funkciu alebo metódu paralelne s hlavným vláknom, bez jeho blokovania.
Na spustenie gorutiny sa používa kľúčové slovo go pred volaním funkcie:
func sayHello() {
fmt.Println("Ahoj z gorutiny")
}
func main() {
go sayHello() // spustenie gorutiny
// hlavné vlákno pokračuje
time.Sleep(time.Second) // aby mala gorutina čas na vykonanie
}
Riadenie gorutiny zahŕňa synchronizáciu a koordináciu ich práce. Na tento účel sa často používajú kanály (chan), ktoré umožňujú bezpečný a efektívny prenos dát medzi gorutinami.
Príklad použitia kanála na čakanie na dokončenie gorutiny:
func worker(done chan bool) {
fmt.Println("Práca gorutiny")
done <- true // signál o ukončení
}
func main() {
done := make(chan bool)
go worker(done)
<-done // čakanie na signál
fmt.Println("Gorutina ukončená")
}
Týmto spôsobom je spustenie a riadenie gorutiny spôsob, ako organizovať konkurenčné vykonávanie kódu pomocou ľahkých vlákien a mechanizmov synchronizácie.