Sobes.tech
Junior — Middle

Aký je rozdiel medzi gorutinou a systémovým vláknom v kontexte vykonávania úloh?

sobes.tech AI

Odpoveď od AI

Gorutina je ľahká jednotka vykonávania spravovaná prostredím na beh Go (runtime), ktorá používa veľmi málo pamäte a môže byť spustená vo veľkom počte súčasne. Systémový vlákno (thread) je ťažšia jednotka plánovania operačného systému.

Hlavné rozdiely:

  • Gorutiny sú oveľa ľahšie z hľadiska zdrojov ako systémové vlákna.
  • Plánovanie gorutín prebieha vnútri runtime Go, nie operačného systému.
  • Tisíce gorutín môžu pracovať súčasne, zatiaľ čo počet systémových vlákien je zvyčajne menší kvôli nákladom na vytvorenie a prepínanie.

Príklad vytvorenia gorutiny:

func úloha() {
    fmt.Println("Vykonávanie úlohy")
}

func main() {
    go úloha() // spustenie gorutiny
    time.Sleep(time.Second) // čakáme, aby gorutina mala čas sa dokončiť
}

Týmto spôsobom gorutiny umožňujú efektívne vykonávať mnoho úloh paralelne s menšími nákladmi.