Sobes.tech
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.