Sobes.tech
Middle

Povedz mi o goroutines v Go

sobes.tech AI

Odpoveď od AI

Gorutiny sú ľahké vlákna na vykonávanie v jazyku Go, ktoré umožňujú spúšťanie funkcií paralelne s minimálnymi nákladmi na pamäť a čas. Sú riadené runtime-om Go, nie operačným systémom, čo ich robí efektívnejšími v porovnaní s klasickými vláknami.

Spustenie gorutiny sa vykonáva pomocou kľúčového slova go pred volaním funkcie:

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

func main() {
    go sayHello() // spustí gorutinu
    time.Sleep(time.Second) // dáme gorutine čas na dokončenie
}

Gorutiny používajú kanály na synchronizáciu a výmenu dát, čo zjednodušuje písanie konkurenčného kódu bez explicitných zámkov.

Hlavné výhody:

  • Veľmi nízke náklady na vytvorenie a prepínanie kontextu.
  • Jednoduchá synchronizácia cez kanály.
  • Umožňujú efektívne využívanie systémov s viacerými procesormi.